所以说我做了这样的事情:
Employee emp=new Employee();
emp.setId(1); // PK
emp.setName("Earl");
emp.setAge("73");
session.save();
根据这里的教程:http://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example/,这应该在Employee表中引入一个插入,假设所有映射都是正确的。但是,我继续收到序列化错误。是因为我给ID一个值吗?查询生成(但是它将Id视为NULL ...这是为什么?)
有什么方法可以验证禁止检查数据库以查看查询是否已完成?另外,请查看我的其他查询。我对休眠很新。
答案 0 :(得分:2)
这可以通过将id保持为生成值来完成,并且可以将返回类型转换为integer。在模型类中将此注释放在id上
@generatedvalue(strategy = generationtype.auto)
private int id;
然后就不需要插入Employee id hibernate自动生成值并插入并检查值是否已插入
Int i=(Integer)session.save(emp);
if(i > 0)
{
System.out.println("Values inserted");
}
答案 1 :(得分:0)
首先检查是否将值传递给函数session.save():
session.save(emp);
如果仍然失败......
可能是您的主键设置为自动增量。所以你不需要为它指定一个值 也尝试将其包装在交易中 试试这个:
Transaction txn = session.beginTransaction();
Employee emp=new Employee();
//emp.setId(1); // PK
emp.setName("Earl");
emp.setAge("73");
session.save(emp);
txn.commit();
祝福......