如何在hibernate.hbm.xml和users.java中自动添加列

时间:2014-01-17 12:32:31

标签: java hibernate

我有使用NetBeans ide7.4创建hibernate的java项目,直到现在我已经创建了 users.hbm.xml文件和users.java文件基于数据库中的表,但是现在我在users表中添加了一些列,所以请告诉我如何更新我的users.hbm.xml和users.java对应我的数据库表当我在数据库中增加表格或在表格中添加更多列以进行此操作时,我有很多教程,但现在我仍面临问题所以请解决我的问题

在我的用户表只有1列

之前
id

和我的users.java是

package clinic.entity;
// Generated 17 Jan, 2014 4:36:15 PM by Hibernate Tools 3.6.0




public class Users  implements java.io.Serializable {


 private int id;

public Users() {
}

public Users(int id) {
   this.id = id;
}

public int getId() {
    return this.id;
}

public void setId(int id) {
    this.id = id;
}

}

我的users.hbm.xml文件是

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 <!-- Generated 17 Jan, 2014 4:36:16 PM by Hibernate Tools 3.6.0 -->
<hibernate-mapping>
<class name="clinic.entity.Users" table="users" catalog="clinic_mgmt">
    <id name="id" type="int">
        <column name="id" />
        <generator class="assigned" />
    </id>
</class>
</hibernate-mapping>

现在我在表格中添加了2个列,然后架构就是这个

id|name |email

告诉我如何自动更新我的两个文件

2 个答案:

答案 0 :(得分:0)

以相反的方向执行操作更容易:首先更新Java,然后生成数据库模式(因为xml文件可以包含大部分模式)。

现在您已添加了这些列,您必须在每个新列的java文件中添加字段,然后将它们映射到xml文件中。

例如,如果您有一个新的列电子邮件VARCHAR(128),那么您将在当时的java类中添加一个String字段,然后使用&lt; property&gt;映射。 xml文件中的元素:

users.java:

private String email;

...

public String getEmail() {
    return email;
}

public void setEmail(String newValue) {
    email = newValue;
}

users.hbm.xml:

<property column="EMAIL" length="128" name="email"/>

答案 1 :(得分:0)

你可以使用javax.persistence包注释:

    @Basic(fetch=FetchType.LAZY)
    @Column(name="firstname")
    private String firstname;

    public String getFirstname() {
    return firstname;
}

public void setFirstname(String firstname) {
    this.firstname = firstname;
}