Hibernate save和SQL insert有什么区别?

时间:2014-11-10 12:24:36

标签: java sql database hibernate hql

通常我通过sql / hql语句插入或更新它们来将我的对象存储在数据库中。

query = session.createQuery("INSERT INTO Employee(firstName, lastName, salary)");
query.executeUpdate();

最近我读到了关于Hibernates session.save()方法,它接受了一个类,并且似乎自动地将具有它的属性的类插入到DB中。

所以我想知道,"保存"办?

它是否只为用户生成SQL语句?

或者与普通的hqlQuery方式相比有什么优点或缺点吗?

1 个答案:

答案 0 :(得分:0)

保存:

Save方法将对象存储到数据库中。它将保留给定的瞬态实例,首先分配生成的标识符。它返回创建的实体的id。

正如docs所说,

  

保留给定的瞬态实例,首先分配生成的   标识符。 (或者使用标识符属性的当前值if   使用指定的生成器。)此操作级联到关联   如果关联使用cascade =“save-update”进行映射,则为实例。

另请查看What are the differences between the different saving methods in Hibernate?