2

我有许多需要对 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;
}        

有人知道可以执行此操作的设置或工具吗?

4

1 回答 1

5

呃。这个太简单了,我不好意思问了。这是 Hibernate Tools 任务的简单配置问题。相关文档在这里

正确配置为生成注释的 Ant POJO 生成任务如下所示:

<hbm2java  jdk5="true" ejb3="true" />

由于某种原因,这些选项默认为“false”。从休眠文档:

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)

希望这可以帮助!

于 2013-07-18T17:29:42.140 回答