代码之家  ›  专栏  ›  技术社区  ›  Sean Nguyen

hibernate生成字段名为=数据库列名的pojo类

  •  0
  • Sean Nguyen  · 技术社区  · 15 年前

    当我使用hibernate eclipse插件从表中生成java类时,私有字段名与表名相同。有没有办法让它和我的列名一样?

    例如:

    table: User
    column : name (string)
    column : homeAddressId (fk to addressTable)
    

    现在生成的类是:

    User{ 
    private String name;
    private Address address;
    }
    

    我希望是:

    User{
    private String name;
    private Address homeAddress;
    }
    

    有这样的设置吗?

    非常感谢你的帮助。

    2 回复  |  直到 15 年前
        1
  •  0
  •   M.J.    15 年前

    你和hibernate之间的理解可能有问题。实际上,我看到有一个外键和另一个表 Address ,不是 homeAddress .

    你也可以张贴其他表(地址)结构。

    好像另一个表名是 地址 然后hibernate插件被绑定以创建名为 address ,因为我觉得插件没有自己的智能。

        2
  •  0
  •   marcelo    15 年前

    首先,你的域名应该是你想要的。如果需要对映射(ORM)进行更多更改,可能需要在hibernate-conf.xml中进行更改。生成的类和当前类是相同的。例如,user.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="User" table="ADMIN_USER_TBL">
     <id name="id" type="string" column="ADMIN_USER_ID">
            <generator class="assigned" />
     </id>
     <property name="name" column="FIRST_NAME" />
     ...
    </class>
    </hibernate-mapping>
    

    然后,对地址进行映射:

    <?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="Address" table="ADDRESS_TBL">
     <id name="id" type="string" column="ADMIN_USER_ID">
            <generator class="assigned" />
     </id>
     <property name="address" column="ADDRESS1" />
     <property name="address2" column="ADDRESS2" />
     <property name="city" column="ADDRESS_CITY" />
     <property name="state" column="ADDRESS_STATE" />
     <property name="zip" column="ADDRESS_ZIP" />
     ...
    </class>
    </hibernate-mapping>
    

    如果有帮助请告诉我!;)