价值在DB中越过了

时间:2013-11-28 15:52:59

标签: java hibernate

请在这里帮助我。我是Hibernate的新手。成功完成设置。但是当我运行具有不同值的代码时,表中的值将被重写。我不知道出了什么问题。这是我的代码:

UserDetails.java

package com.hibernate;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="User_Details")
public class UserDetails {

    @Id
    private int id;
    private String name;
    private String phonenumber;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhonenumber() {
        return phonenumber;
    }
    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }


}

GetUserDetails.java

package com.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

@SuppressWarnings("deprecation")

public class GetUserDetails {

    public static void main(String[] args) {
        UserDetails ud = new UserDetails();
        ud.setId(3);
        ud.setName("User3");
        ud.setPhonenumber("9988555774");

        SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();

        session.beginTransaction();
        session.save(ud);
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
    }

}

当我运行上面的代码时,值为“3”,“User3”,“9988555774”将被插入表中。

但是,如果我再次使用值“4”,“User4”,“9988547774”运行代码,则旧值将被重写并正确插入新值。

请帮助我,因为我不知道我错过了什么。

1 个答案:

答案 0 :(得分:0)

我相信您已在hibernate.cfg.xml中添加了以下内容。

<property name="hbm2ddl.auto">create</property>

尝试将“创建”更改为“更新”,如下所示:

<property name="hbm2ddl.auto">update</property>

有关上述属性值的详情,请参阅以下链接:

Hibernate hbm2ddl.auto possible values and what they do?

Hibernate: hbm2ddl.auto=update in production?

相关问题