【问题标题】:Session.refresh() in HibernateHibernate 中的 Session.refresh()
【发布时间】:2015-12-06 18:40:43
【问题描述】:

我有一个关于 Hibernate 规范第 4.6 节的问题,位于 http://docs.jboss.org/hibernate/orm/5.0/userGuide/en-US/html_single/#d5e423

它是写在那个规范中的:

请注意,只有实体实例及其集合会被刷新 除非您将 REFRESH 指定为任何关联的级联样式

该语句中的“它的集合”是什么意思?

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    意思是它的关联

    例子:

    @Entity
    @Table(name = "MyEntity")
    public class MyEntity implements Serializable
    {
      //..
        @OneToMany(cascade=CascadeType.REFRESH, fetch = FetchType.LAZY)
        @JoinColumn(name="MY_ENTITY_ID")
        private Set<MyEntityFriend> itsFriends;
      //..
    }
    

    session 在实体实例 MyEntity 上调用 refresh() 时,此刷新也会级联到 itsFriends

    最常见的 refresh() 级联到未明确定义而是通过 CascadeType.ALL

    隐式定义的关联

    【讨论】:

    • 是的。我也考虑过这一点,但我担心“除非你指定 REFRESH”。 IE。如果您不指定 REFRESH,则“实例及其集合被刷新”,如果您另外指定 REFRESH,则关联也会被刷新。也许这里有一些微妙的东西?
    猜你喜欢
    • 1970-01-01
    • 2013-09-20
    • 2017-07-04
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2012-10-15
    • 2010-09-29
    • 2014-10-14
    相关资源
    最近更新 更多