求解休眠複製插入
但真正的問題是不休眠,它主要是我和第二個Netbeans。
我正在發帖,並保存我的數據。但是我在js中做了一個重複的帖子,Netbeans不會兩次觸發斷點(我不知道爲什麼)。所以,對我來說,這是一個職位,只有一個插入。但是,不,兩個帖子和兩個插入。
抱歉失去你的時間:/
我對Hibernate,所以我有一些問題,也許它只是一個愚蠢的人,我真的不知道。
我想用@ManyToOne關係向數據庫插入一個對象,但是當我堅持並提交事務時,Hibernate正在複製它。這是我的代碼。
網友發帖類
@Entity
@Table(name = "USERPOST", schema = "ADMIN1")
public class UserPost implements java.io.Serializable {
private int iduserpost;
private String detail;
private User user;
public UserPost() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDUSERPOST", unique = true, nullable = false)
public int getIduserpost() {
return this.iduserpost;
}
public void setIduserpost(int iduserpost) {
this.iduserpost = iduserpost;
}
@Column(name = "DETAIL", nullable = false)
public String getDetail() {
return this.detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
@ManyToOne
@JoinColumn(name = "IDUSER")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
用戶類別
@Entity
@Table(name = "USER", schema = "ADMIN1")
public class User implements java.io.Serializable {
private int iduser;
private String name;
private String email;
private Set<UserPost> posts;
public User() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDUSER", unique = true, nullable = false)
public int getIduser() {
return this.iduser;
}
public void setIduser(int iduser) {
this.iduser = iduser;
}
@Column(name = "NAME", nullable = false)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "EMAIL", nullable = false)
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
@OneToMany(mappedBy = "user")
public Set<UserPost> getPosts() {
return posts;
}
public void setPosts(Set<UserPost> posts) {
this.posts = posts;
}
}
插入方法對經理
public void Insert(Object data) {
Session session = null;
try {
session = hibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.persist(data);
session.getTransaction().commit();
} catch (Exception e) {
System.err.println(e.getMessage());
throw e;
} finally {
if (session.isOpen()) {
session.close();
}
}
}
上的Servlet插入
FeedManager manager = new FeedManager();
UserPost post = new UserPost();
post.setDetail(text);
User usrPesist = (User) manager.GetById(User.class, idUser);
post.setUser(usrPesist);
manager.Insert(post);
我得到的結果是兩個UserPosts插入數據庫,當我想要的只是一個。
有什麼問題嗎?
請啓用[SQL日誌記錄](http://stackoverflow.com/a/1713464/4754790)並從日誌中發佈相關摘錄。 –