请帮帮我。我是 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”运行代码,那么旧值将被覆盖,新值将被正确插入。
请帮助我,因为我不知道我错过了什么。
最佳答案
我相信您已经在 hibernate.cfg.xml
中添加了以下行。
<property name="hbm2ddl.auto">create</property>
尝试将“create”改为“update”,如下图:
<property name="hbm2ddl.auto">update</property>
有关上述属性值的更多信息,请参阅以下链接:
关于java - 在 DB 中克服的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20270277/