在处理Hibernate代码以在数据库中插入记录时,我遇到了以下错误。请告诉我在这里做错了什么。 Hibernate:插入反馈(fb_rating_id,fb_suggestion,fb_topic_id,user_info)值(?,?,?,?) 异常删除记录:org.hibernate.exception.GenericJDBCException:无法插入:[com.tdp.model.Feedback]
public int insertFeedback(String ratingId, String msg) {
int status = 0;
Session sess = sessionFactory.openSession();
Transaction tx = null;
try {
tx = sess.beginTransaction();
//Criteria crit = sess.createCriteria(Feedback.class);
// crit.add(Restrictions.eq("feedbackId",feedback.getFeedbackId()));
Feedback fbObj = new Feedback();
fbObj.setFbRatingId(Integer.parseInt(ratingId));
fbObj.setFbSuggestion(msg);
fbObj.setFbTopicId(null);
fbObj.setUserInfo("");
sess.save(fbObj);
tx.commit();
status = 1;
} catch (HibernateException e) {
System.out.println("Exception deleting record :" + e);
if (tx != null) {
tx.rollback();
}
} finally {
sess.close();
}
return status;
}
Feedback.java
@Table(name=TDPConstants.FEEDBACK )
public class Feedback {
private Integer feedbackId; //primary key
private Integer fbRatingId;
private Integer fbTopicId;
private String fbSuggestion ;
private String userInfo ;
@Id
@Column(name = "feedback_id",unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getFeedbackId() {
return feedbackId;
}
public void setFeedbackId(Integer feedbackId) {
this.feedbackId = feedbackId;
}
//all other setters & getters
答案 0 :(得分:0)
可能是因为你已经注释了条件,所以它返回了多个对象吗?如果你告诉它期望1个结果但是它有多个结果或没有结果,Hibernate会引发异常。
根据您的评论 您必须创建一个新的反馈实例并在其上设置数据,然后将该实例传递给Hibernate以插入数据库。