【问题标题】:Vaadin + JPA + lazy loadingVaadin + JPA + 延迟加载
【发布时间】:2011-12-20 02:58:18
【问题描述】:

我有 JPA 支持的 Vaadin 应用程序。此应用程序中的组件绑定到 bean 属性(通过独立的 EL 实现)。一些组件绑定到外部对象(或其字段),由@OneToOne、@OneToMany、@ManyToOne 和@ManyToMany 注释链接。通过实现 com.vaadin.data.Property 并将其设置为组件的 DataSources 执行的绑定。

问题是:如果组件在表单被提供给浏览器后会以某种方式刷新(通过 vaadin 的 ajax),延迟加载是否会在“属性”中工作?

【问题讨论】:

    标签: jpa lazy-loading vaadin


    【解决方案1】:

    如果您已将 EntityManager 上的 PersistanceContext 设置为 PersistenceContextType.EXTENDED,那么您的实体将处理此问题,因此也将处理 vaadin。如果你没有它,那么你将不得不手动加载它们。

    @PersistenceContext(unitName = "yourname", type=PersistenceContextType.EXTENDED)
    private EntityManager entityManager;
    

    【讨论】:

    • 感谢您的回答!但在我的情况下,我必须自己从 EntityManagerFactory 构建 EntityManager,所以我不能使用@PersistenceContext EntityManager。也许我找到了某种解决方案 - 我想从存储在 com.vaadin.Application 中的 EntityManager 中读取数据,并使用每次需要写入内容时创建的 EntityManager 进行写入。
    • 我的最后一个答案已被弃用。我不得不重新审视 db 通信代码的架构,并再次尝试使用 jpa,这一次使用 EntityManager 请求范围,导致在每次合并大对象图时生成后续的 SELECT 查询。现在我正在寻找 jOOQ 方法,完全没有 JPA)
    猜你喜欢
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2021-02-04
    • 2011-07-27
    • 2017-12-11
    • 2019-04-28
    • 2016-12-21
    相关资源
    最近更新 更多