Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在hibernate.hbm.xml和users.java中自动添加列_Java_Hibernate - Fatal编程技术网

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

如何在hibernate.hbm.xml和users.java中自动添加列,java,hibernate,Java,Hibernate,我有一个java项目,我正在用hibernate使用NetBeans ide7.4创建,现在我已经创建了 users.hbm.xml文件和users.java文件,它们基于数据库中的表,但现在我在users表中添加了更多的列,所以请告诉我如何更新我的users.hbm.xml和users.java对应的数据库表当我在数据库中增加表或在表中添加更多的列来执行此操作时,我有空闲的教程数量,但仍然没有更新现在我面临问题,所以请解决我的问题 在此之前,“我的用户”表只有一列 id 而我的users.j

我有一个java项目,我正在用hibernate使用NetBeans ide7.4创建,现在我已经创建了
users.hbm.xml文件和users.java文件,它们基于数据库中的表,但现在我在users表中添加了更多的列,所以请告诉我如何更新我的users.hbm.xml和users.java对应的数据库表当我在数据库中增加表或在表中添加更多的列来执行此操作时,我有空闲的教程数量,但仍然没有更新现在我面临问题,所以请解决我的问题

在此之前,“我的用户”表只有一列

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>

因此,告诉我如何自动更新这两个文件

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

既然已经添加了这些列,那么必须在java文件中为每个新列添加字段,然后将它们映射到xml文件中

例如,如果您有一个新的列email VARCHAR(128),您将在then java类中添加一个字符串字段,然后在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"/>

您可以使用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;
}


和。。。你到底试过什么?你看过Hibernate逆向工程了吗?我已经这样做了,但是我的问题仍然没有解决。请提供我正确的答案,如果没有关于你的用例看起来像什么,你具体尝试了什么,为什么它不适合你的信息,这是不可能的。你会遇到什么错误?是什么阻止你使用Hibernate Reven来做这个?您一直在谈论“我的问题”,甚至没有实际描述该问题。请检查我在更新表代码之前提供的上述代码是否有任何方法更新这两个文件automatically@user3205372:否。当您以另一种方式进行操作时,可以使用模式生成器(org.hibernate.tool.hbm2ddl.SchemaExport),即使它不处理模式升级;但是如果你从模式开始,你就得靠自己了……告诉我如何使用它以及在哪里使用它
    @Basic(fetch=FetchType.LAZY)
    @Column(name="firstname")
    private String firstname;

    public String getFirstname() {
    return firstname;
}

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