测试代码如下:
                session.getTransaction().begin();

  Address address=(Address)session.load(Address.class, 1);;
         Userinfo userinfo=new Userinfo();
userinfo.setAddress(address);
userinfo.setUser(user);
        session.getTransaction().commit();

解决方案 »

  1.   

    测试代码应该这样,刚才弄错了: 
             session.getTransaction().begin(); 
            Address address=(Address)session.load(Address.class, 1);; 
            Userinfo userinfo=new Userinfo(); 
            userinfo.setAddress(address); 
    session.save(userinfo);
            session.getTransaction().commit();
      

  2.   

    异常如下
    org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
    at com.test.Client.main(Client.java:77)
    Caused by: java.sql.BatchUpdateException: Duplicate key or integrity constraint violation message from server: "Cannot add or update a child row: a foreign key constraint fails (`cityu`.`userinfo`, CONSTRAINT `FKF02772F95CA635D4` FOREIGN KEY (`addressid`) REFERENCES `address` (`id`))"
    at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1540)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
    ... 8 more