写代码时候要把一个用户对象保存到数据库,代码如下:
Account account = user;
System.out.println(account.getUserid());
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(account);
session.getTransaction().commit();
session.close();
其中System.out那一步可以正确的输出id,但是控制台输出的SQL语句却是这样的:
Hibernate: insert into account (email, firstname, lastname, status, addr1, addr2, city, state, zip, country, phone) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
values全部为空,然后程序报无法执行SQL的异常=。=不知道这是为什么,学生党,求大神前辈解救。。
那可能是因为你的数据表设计的某些字段是不能为空的,导致sql插入时执行异常了。
你需要找出那些不能为空的字段,然后设置字段对应的实体类的相应属性才可以的。
Session的save()方法是直接可以将对象转为持久化状态的 你直接断点 吧user输出来 看看里面有没有值 还是就一个id值啊
直接保存user不行吗,,,
获取的Session的方式换一种 Session session = HibernateUtil.getSessionFactory().openSession();