Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL休眠错误_Sql_Hibernate - Fatal编程技术网

SQL休眠错误

SQL休眠错误,sql,hibernate,Sql,Hibernate,我正在使用一个helper类,并试图将一些数据插入db表中。我有一个自我加入的班级和一对一的关系 插入事务的主类 public static void main(String[] args) { // TODO Auto-generated method stub Session session = HibernateUtil.getSessionFactory().openSession(); Transaction transacti

我正在使用一个helper类,并试图将一些数据插入db表中。我有一个自我加入的班级和一对一的关系

插入事务的主类

          public static void main(String[] args) {
    // TODO Auto-generated method stub


     Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();

             // Create new checker
            Staff checker = new Staff();
            checker.setStaffId("d8");
            checker.setEmail("do@msn.com");
            checker.setName("Doris");
            checker.setPassword("890");
            checker.setUsername("dr89");

            // Create new staff
            Staff staff1 = new Staff();
            staff1.setStaffId("m6");
        staff1.setEmail("mr@msn.com");
            staff1.setName("Marius");
            staff1.setPassword("234");
            staff1.setUsername("mr23");


            Staff staff2 = new Staff();
            staff2.setStaffId("b8");
        staff2.setEmail("be@msn.com");
            staff2.setName("Betty");
            staff1.setPassword("567");
            staff1.setUsername("be56");

            Set<Staff> staff = new HashSet<Staff>();
            staff.add(staff1);
            staff.add(staff2);

            staff1.setChecker(checker);
            staff2.setChecker(checker);

                checker.setSetters(staff);

            session.save(checker);

            session.save(staff1);
            session.save(staff2);
             transaction.commit();

        }catch (HibernateException e) {
            transaction.rollback();
            e.printStackTrace();
        } finally {
            session.close();
        } 

}
在我运行代码之后,它在列密码处发现了一个约束冲突

stacktrace中的查询和警告:

     Hibernate: select staff_.staff_id, staff_.checker_id as checker6_2_, staff_.email 

  as email2_, staff_.name as name2_, staff_.password as password2_, staff_.username as 

   username2_ from staff staff_ where staff_.staff_id=?


  Hibernate: select staff_.staff_id, staff_.checker_id as checker6_2_, staff_.email as 

   email2_, staff_.name as name2_, staff_.password as password2_, staff_.username as 

  username2_ from staff staff_ where staff_.staff_id=?


  Hibernate: insert into staff (checker_id, email, name, password, username, staff_id) 

   values (?, ?, ?, ?, ?, ?)

  Hibernate: insert into staff (checker_id, email, name, password, username, staff_id) 

 values (?, ?, ?, ?, ?, ?)
  Hibernate: insert into staff (checker_id, email, name, password, username, 

  staff_id)     
   values (?, ?, ?, ?, ?, ?)
  WARN : org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1048, SQLState: 

  23000
  ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Column 'password' cannot 

   be null
完全错误

     org.hibernate.exception.ConstraintViolationException: Column 'password' cannot be null
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:74)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy16.executeUpdate(Unknown Source)
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:56)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3028)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3469)
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:88)
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:275)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1213)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:402)
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)
at com.project.professional.StaffRelationshipTest.main(StaffRelationshipTest.java:75)
是的,我将表中的密码设置为NOTNULL,并添加了一些数据以将其放入主类中,因此它不应为null。所以我不确定为什么会出现错误

打字错误

Staff staff2 = new Staff();
staff2.setStaffId("b8");
staff2.setEmail("be@msn.com");
staff2.setName("Betty");
staff1.setPassword("567");    << should be staff2
staff1.setUsername("be56");   << should be staff2
Staff staff2=新员工();
员工2.固定员工(“b8”);
staff2.setEmail(“be@msn.com");
员工2.设置名称(“贝蒂”);
员工1.设置密码(“567”);
Staff staff2 = new Staff();
staff2.setStaffId("b8");
staff2.setEmail("be@msn.com");
staff2.setName("Betty");
staff1.setPassword("567");    << should be staff2
staff1.setUsername("be56");   << should be staff2