JPA:如何避免简单地加载对象,以便将其ID存储在数据库中?

闪光蜘蛛

这个问题很简单,您可能只需阅读代码即可

这是一个非常简单的性能问题。在下面的代码示例中,我希望OwnerCat对象设置on 我有ownerId,但cats方法需要一个Owner对象,而不是Long例如:setOwner(Owner owner)

@Autowired OwnerRepository ownerRepository;
@Autowired CatRepository catRepository;

Long ownerId = 21;
Cat cat = new Cat("Jake");
cat.setOwner(ownerRepository.findById(ownerId)); // What a waste of time
catRepository.save(cat)

我正在使用ownerId加载Owner对象,因此可以在上调用setter,Cat只需将拔出id,然后用保存Cat记录owner_id因此,本质上来说,我一无所获。

正确的模式是什么?

胜利者

首先,您应注意加载Owner实体的方法。

如果您使用的是Hibernate Session

// will return the persistent instance and never returns an uninitialized instance
session.get(Owner.class, id);

// might return a proxied instance that is initialized on-demand
session.load(Owner.class, id);

如果您使用的是EntityManager

// will return the persistent instance and never returns an uninitialized instance
em.find(Owner.class, id);

// might return a proxied instance that is initialized on-demand
em.getReference(Owner.class, id);

因此,您应该延迟加载Owner实体,以避免对高速缓存或数据库造成某些损失。

顺便说一句,我建议您反转Owner之间的关系Cat

例如 :

Owner owner = ownerRepository.load(Owner.class, id);
owner.addCat(myCat);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Codeigniter-如何避免用户的多次登录将其会话存储在数据库中

来自分类Dev

如何将其存储在数据库中?

来自分类Dev

如何避免在数据库中创建“假” ID?

来自分类Dev

如何将图库中的图像uri存储在数据库中,以便稍后在Xamarin.Android中加载?

来自分类Dev

如何有效地记录使用javascript键入的用户并将其存储在数据库中?

来自分类Dev

如何在数据库中存储递归对象?

来自分类Dev

我如何获取一个类对象的ID,在另一个类中并将其存储在数据库中-Django

来自分类Dev

在数据库中存储ID

来自分类Javascript

在Firebase中使用push()时,如何获取唯一ID并将其存储在数据库中

来自分类Dev

如何使用 C# 和 SQL 将存储在数据库中的图像加载到图片框对象中

来自分类Dev

如何在本地存储用户名以便在数据库中快速计算

来自分类Dev

将异类对象存储在数据库中,并使用Python将其删除

来自分类Dev

Codeigniter:如何从数组中获取数据并将其存储在数据库中

来自分类Dev

将字符串转换为日期格式,以便可以将其存储在数据库中

来自分类Dev

JSON 对象还是 JSON 字符串?哪个更好地存储在数据库中?

来自分类Dev

将ID作为int存储在数据库中,并使用Dapper将其作为HashID获得

来自分类Dev

如何从csv文件读取数据并将其存储在数据库中?春季靴

来自分类Dev

如何从cnc控制器获取数据并将其存储在数据库中?

来自分类Dev

如何使用PHP / MySQL实现嵌套位置并将其存储在数据库中?

来自分类Dev

如何将其存储在数据库mysql PHP jquery中

来自分类Dev

如何获得多个无线电输入并将其存储在数据库中?

来自分类Dev

如何验证表单字段但不将其存储在数据库中

来自分类Dev

JPA 事务将插入存储在数据库中

来自分类Dev

如何安全有效地将SSN存储在数据库中?

来自分类Dev

如何更好地在数据库中存储有关类别的信息

来自分类Dev

如何有效地将图片存储在数据库中?

来自分类Dev

如何检索jComboBox中绑定在数据库表中的对象并将其存储到另一个表中

来自分类Dev

如何从单个文本框中获取多个值并将其存储在数组中以及如何将其存储在数据库中

来自分类Dev

如何在对象中存储数据并将其保存到SQLite数据库中?

Related 相关文章

  1. 1

    Codeigniter-如何避免用户的多次登录将其会话存储在数据库中

  2. 2

    如何将其存储在数据库中?

  3. 3

    如何避免在数据库中创建“假” ID?

  4. 4

    如何将图库中的图像uri存储在数据库中,以便稍后在Xamarin.Android中加载?

  5. 5

    如何有效地记录使用javascript键入的用户并将其存储在数据库中?

  6. 6

    如何在数据库中存储递归对象?

  7. 7

    我如何获取一个类对象的ID,在另一个类中并将其存储在数据库中-Django

  8. 8

    在数据库中存储ID

  9. 9

    在Firebase中使用push()时,如何获取唯一ID并将其存储在数据库中

  10. 10

    如何使用 C# 和 SQL 将存储在数据库中的图像加载到图片框对象中

  11. 11

    如何在本地存储用户名以便在数据库中快速计算

  12. 12

    将异类对象存储在数据库中,并使用Python将其删除

  13. 13

    Codeigniter:如何从数组中获取数据并将其存储在数据库中

  14. 14

    将字符串转换为日期格式,以便可以将其存储在数据库中

  15. 15

    JSON 对象还是 JSON 字符串?哪个更好地存储在数据库中?

  16. 16

    将ID作为int存储在数据库中,并使用Dapper将其作为HashID获得

  17. 17

    如何从csv文件读取数据并将其存储在数据库中?春季靴

  18. 18

    如何从cnc控制器获取数据并将其存储在数据库中?

  19. 19

    如何使用PHP / MySQL实现嵌套位置并将其存储在数据库中?

  20. 20

    如何将其存储在数据库mysql PHP jquery中

  21. 21

    如何获得多个无线电输入并将其存储在数据库中?

  22. 22

    如何验证表单字段但不将其存储在数据库中

  23. 23

    JPA 事务将插入存储在数据库中

  24. 24

    如何安全有效地将SSN存储在数据库中?

  25. 25

    如何更好地在数据库中存储有关类别的信息

  26. 26

    如何有效地将图片存储在数据库中?

  27. 27

    如何检索jComboBox中绑定在数据库表中的对象并将其存储到另一个表中

  28. 28

    如何从单个文本框中获取多个值并将其存储在数组中以及如何将其存储在数据库中

  29. 29

    如何在对象中存储数据并将其保存到SQLite数据库中?

热门标签

归档