插入数据库时​​出现错误的Hibernate方法

时间:2017-04-04 13:57:51

标签: java hibernate

在处理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

1 个答案:

答案 0 :(得分:0)

可能是因为你已经注释了条件,所以它返回了多个对象吗?如果你告诉它期望1个结果但是它有多个结果或没有结果,Hibernate会引发异常。

根据您的评论 您必须创建一个新的反馈实例并在其上设置数据,然后将该实例传递给Hibernate以插入数据库。