saveOrUpdate()没有主键

时间:2013-09-08 17:31:14

标签: hibernate save

我有一个数据,如果已存在,我想要保存或更新。 所以saveOrUpdate()但仅限于我知道主键。

我可以从数据库中调用select来查找id,在每个任务之前,但是有更好的方法吗?

编辑:

基本上我有电视剧剧集的数据库表(1000多个对象)。当我所谓的订购电视节目并想要将60集的剧集添加到数据库时,我必须在每一集插入之前进行if检查(选择呼叫以接收主键)。听起来应该是这样吗?

1 个答案:

答案 0 :(得分:0)

如果您事先知道主键,并且您确定存在具有该PK的行,则可以使用 Session.get(Serializable id)代替Session.load(Serializable id); get()将创建一个desidered类型的对象,而不会访问数据库 在其他情况下,如果没有@Entity,您将无法拥有@Id(在Hibernate启动期间会出现错误)因此如果您使用的是Session.saveOrUpdate(obj),则您拥有obj主键,按设计。