验证插入查询是否在休眠中完成

时间:2013-06-13 01:05:24

标签: java hibernate hql hibernate-criteria

所以说我做了这样的事情:

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 ...这是为什么?)

有什么方法可以验证禁止检查数据库以查看查询是否已完成?另外,请查看我的其他查询。我对休眠很新。

2 个答案:

答案 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();

祝福......