【问题标题】:default value for CascadeType in HibernateHibernate 中 CascadeType 的默认值
【发布时间】:2011-12-24 07:09:35
【问题描述】:

我正在使用 Hibernate 来持久化这个 bean。

import javax.persistence.*;

@Entity
public class Person {
    @Id @GeneratedValue
    private int id;
    @Column
    private String name;
    @OneToOne
    private Address addr;
}

addr 对应的CascadeType 是什么?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    CascadeType 默认为空数组。见CascadeType in Annotation Type OneToOne

    默认情况下没有级联操作。

    【讨论】:

    • 它适用于 JPA,我希望它是一样的。
    • JPA 是规范。 Hibernate 是这个规范的一个实现,就像 e.g. Eclipse 链接。所以,是的。如果它在规范的文档中,那么所有实现都应该是相同的。
    • @NicoVanBelle 并非总是如此。默认值可能会有所不同。例如,JPA 中的 manyToOne 和 oneToOne 注释有一个急切的默认获取模式,而在休眠状态下它是一个惰性获取模式。
    • @ihebiheb stackoverflow.com/questions/26601032/…。但是是的,您仍然可能需要检查实现文档以查看是否没有规范默认被覆盖。尽管在我看来这毕竟是不好的做法。
    【解决方案2】:

    您可以在here 查看@OneToOne 的来源。默认没有操作级联

      /**
         * (Optional) The operations that must be cascaded to
          * the target of the association.
         *
         * <p> By default no operations are cascaded.
         */
       CascadeType[] cascade() default {};
    

    阅读更多:http://kickjava.com/src/javax/persistence/OneToOne.java.htm#ixzz1d6ZWMM2y

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2017-05-29
      • 1970-01-01
      • 2015-01-15
      • 2014-02-10
      • 2021-03-29
      • 1970-01-01
      相关资源
      最近更新 更多