是否有必要使用Hibernate保存实体的各个项目?

时间:2017-12-22 07:17:46

标签: java hibernate

我正在学习hibernate并且开始知道它是一个ORM工具。

考虑这种情况:

@Entity
@Table(name="USER_DETAILS")
public class UserInfo {

    @ElementCollection
    Set<Address> addressList = new HashSet<Address>();

    // Some other code...
}

主要应用:

public class MainApp {

     public static void main(String s[]) {

         SessionFactory sf = null;
         sf = new Configuration().configure().buildSessionFactory(); // This will read the hibernate.cfg.xml file

          // We can save using session.save(object)
     }
}

从代码中可以看出,addressList实体中有UserInfo(集合)。

我的问题是:

当我们保存实体时,embedded object是否会自动保存为实体的一部分,或者我们还需要专门保存collection object

1 个答案:

答案 0 :(得分:0)

  1. cascade =“none”,默认情况下,告诉Hibernate忽略关联。
  2. cascade =“save-update”告诉Hibernate在关联时导航关联 提交事务以及将对象传递给save()或 update()并保存新实例化的瞬态实例并保持更改 分离的实例。
  3. cascade =“delete”告诉Hibernate在将对象传递给delete()时导航关联并删除持久化实例。
  4. cascade =“all”表示级联save-update和delete,以及 要求驱逐和锁定。
  5. cascade =“all-delete-orphan”表示与cascade =“all”相同,但此外, Hibernate删除已删除的任何持久性实体实例 (取消引用)来自协会(例如,来自集合)。
  6. cascade =“delete-orphan”Hibernate将删除任何持久性实体 已从关联中删除(取消引用)的实例(for 例如,来自集合)。