【问题标题】:JPA create new entity, how to connect its relationshipJPA创建新实体,如何连接它的关系
【发布时间】:2012-12-17 05:42:06
【问题描述】:

例如,我有一个表“goods”,它有一个“categoryId”列,这是另一个带有id和名称的“category”表。

当我创建goods实体时,我手头有namecategoryId,我需要先查询类别实体,然后在goods实体中调用“setCategory”函数,然后最后保存到数据库中。

这对我来说看起来不太好,每次我创建一个goods 实体时,我都需要先通过它的 id 来查询类别实体,我想知道有什么简单、高性能的方法吗?

【问题讨论】:

    标签: java database spring hibernate jpa


    【解决方案1】:

    假设类别是主数据,您可能希望将类别缓存在内存中。从缓存中检索类别对象将是高性能的。 Hibernate 具有良好的缓存支持,例如Second Level CacheQuery Cache 等。我建议你使用同样的方法。

    ehcache 是用于缓存的另一个选项。

    【讨论】:

      【解决方案2】:

      类别实体将是cached,因此除非每个“商品”实体引用不同的类别,否则您可能会获得可接受的性能。

      如果你真的很担心,可以使用EntityManager.getReference 来检索类别实体的轻量级版本。

      【讨论】:

        【解决方案3】:

        除非您遇到性能问题,否则不要做任何事情! 通过 id 查询类别并添加到商品中就可以了!不要试图找到没有的问题

        【讨论】:

          猜你喜欢
          • 2017-04-04
          • 2019-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多