请在这里帮助我。我是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”运行代码,则旧值将被重写并正确插入新值。
请帮助我,因为我不知道我错过了什么。
答案 0 :(得分:0)
我相信您已在hibernate.cfg.xml
中添加了以下内容。
<property name="hbm2ddl.auto">create</property>
尝试将“创建”更改为“更新”,如下所示:
<property name="hbm2ddl.auto">update</property>
有关上述属性值的详情,请参阅以下链接: