我有许多数据库表需要对POJO进行反向工程。我已经获得了创建裸POJO以及cfg.xml文件:
简单的POJO:
public class AddressType implements java.io.Serializable {
private long addressId;
private char addressType;
private String addressDescription;
}
简单的cfg.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.mycompany.model.Addytyp" table="ADDYTYP" schema="XX" catalog="BANANA">
<comment>Address Types</comment>
<id name="addressType" type="char">
<column name="ADDRESS_TYPE" length="1" />
<generator class="assigned" />
</id>
<property name="addressId" type="long">
<column name="ADDRESS_ID" precision="10" scale="0" not-null="true">
<comment>Address ID</comment>
</column>
</property>
<property name="addressDescription" type="string">
<column name="ADDRESS_DESCRIPTION" length="25" not-null="true">
<comment>Address Decription</comment>
</column>
</property>
</class>
</hibernate-mapping>
我想知道的是,是否有一个设置或工具可以使用POJO中的列和ID信息作为注释对POJO进行反向工程而不是单独的文件?例如:
带注释的简单POJO:
@Table(name="ADDYTYP")
public class AddressType implements java.io.Serializable {
@Id
@Column( name="ADDRESS_ID", precision=10, scale=0, nullable=true)
private long addressId;
@Column(name="ADDRESS_TYPE", length=1)
private char addressType;
@Column( name="ADDRESS_DESCRIPTION", length=25 nullable=true)
private String addresDescription;
}
任何人都知道要执行此操作的设置或工具吗?
答案 0 :(得分:5)
咄。这个很简单,我很尴尬,我问过它。这是Hibernate Tools任务配置的简单问题。相关文档为here。
正确配置为生成注释的Ant POJO生成任务如下所示:
<hbm2java jdk5="true" ejb3="true" />
出于某种原因,这些选项默认为“false”。来自Hibernate文档:
jdk Code will contain JDK 5 constructs
such as generics and static imports (Default = False)
ejb3 Code will contain EJB 3 features, e.g. using annotations
from javax.persistence and org.hibernate.annotations (Default = False)
希望这有帮助!