你的id都是<generator class="assigned"/>,需要在程序中将PO的ID先赋值,如果交给DB自动处理,可以选用native试试

解决方案 »

  1.   

    我现在改成native了,但是插入数据的时候只有一张表有数据,页面上的调用 type.setTypeName((String)request.getParameter("bookType"));

    book.setBookName((String)request.getParameter("bookName"));
    //book.setBookPrice(Float.valueOf("bookPrice"));
    book.setBookProducer((String)request.getParameter("bookProducer"));
    book.setBookDescn((String)request.getParameter("bookDescn")); book.setT(type);
    type.addToBooks(book);
    Session abc =app.getSessionFactory() ;
    Transaction tx = abc.beginTransaction();
    abc.save(type);
    tx.commit(); 
             abc.close(); 然后在控制台下的显示:Hibernate: insert into type (type_name) values (?) select scope_identity()
    - SQL Warning: 0, SQLState: 
    - [Microsoft][SQLServer 2000 Driver for JDBC]Database changed to book
    - SQL Warning: 0, SQLState: 
    - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将数据库上下文改为 'book'。
    - SQL Warning: 0, SQLState: 
    - [Microsoft][SQLServer 2000 Driver for JDBC]Language changed to 简体中文
    - SQL Warning: 0, SQLState: 
    - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]已将语言设置改为 简体中文。高手看下,是什么原因