用的是HibernateTools-3.2.4.GA-R200905070146-H18工具里的Hibernate Code Generation方法:hibernate.cfg.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="safety">
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password">system</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.42.61:1521:prjdb</property>
<property name="hibernate.connection.username">system</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<mapping resource="cn/hbm1/ThreeSameTime.hbm.xml" />
</session-factory>
</hibernate-configuration>
ThreeSameTime.hbm.xml文件<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//HIBERNATE/Hibernate Mapping DTD/EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ThreeSameTime" table="THREE_SAME_TIME">
<id name="id" column="ID" type="string">
<generator class="assigned"/>
</id>
<property name="name" column="NAME" type="string" not-null="false" length="500" />
</class>
</hibernate-mapping>执行的时候不会错,但就是没有ddl生产,谁知道为什么??
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="safety">
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password">system</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.42.61:1521:prjdb</property>
<property name="hibernate.connection.username">system</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<mapping resource="cn/hbm1/ThreeSameTime.hbm.xml" />
</session-factory>
</hibernate-configuration>
ThreeSameTime.hbm.xml文件<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//HIBERNATE/Hibernate Mapping DTD/EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ThreeSameTime" table="THREE_SAME_TIME">
<id name="id" column="ID" type="string">
<generator class="assigned"/>
</id>
<property name="name" column="NAME" type="string" not-null="false" length="500" />
</class>
</hibernate-mapping>执行的时候不会错,但就是没有ddl生产,谁知道为什么??
就有这样的错:org.hibernate.InvalidMappingException: Could not parse mapping document from file C:\Documents and Settings\qichunhai\oa\ddddd\src\cn\hbm1\ThreeSameTime.hbm.xml
Could not parse mapping document from file C:\Documents and Settings\qichunhai\oa\ddddd\src\cn\hbm1\ThreeSameTime.hbm.xml
org.hibernate.DuplicateMappingException: Duplicate class/entity mapping com.bornsoft.safety.po.ThreeSameTime
Duplicate class/entity mapping com.bornsoft.safety.po.ThreeSameTime
org.hibernate.DuplicateMappingException: Duplicate class/entity mapping com.bornsoft.safety.po.ThreeSameTime
Duplicate class/entity mapping com.bornsoft.safety.po.ThreeSameTime
不加没有错,但是任然没有结果生产的文件
这个路径的映射文件也被加载了。所以错误提示为"Duplicate class/entity mapping",及重复映射。检查下为什么C:\Documents and Settings\qichunhai\oa\ddddd\src\cn\hbm1\ThreeSameTime.hbm.xml会被加载,或者删了这个文件。
其实,C:\Documents and Settings\qichunhai\oa\ddddd\src\cn\hbm1\ThreeSameTime.hbm.xml文件就是<mapping resource="cn/hbm1/ThreeSameTime.hbm.xml" />里面的这个文件,只不过我在创建“Hibernate Code Generation Configuration”时指定了这个映射文件,而hibernate.cfg.xml里面又指定了映射文件,所以说是重复加载。你说的重复映射提醒了我。
执行过后,数据库表结构自动就建好了。