gpt4 book ai didi

java - JPA 是否会像在代码中使用实体时那样在 JPQL 中加载实体?

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:05 24 4
gpt4 key购买 nike

我有两个表:PersonHouse,映射是一对一的。

现在我必须将PersonHouse(可以不同)的address分配给同一个地址。

有超过 5000 条记录。哪个会更快?使用代码来一一更新实体,例如

for (id : Ids) {
Person person = PersonDAO.find(id);
person.setAddress ("abc");
}

然后对House做同样的事情;

或者我应该使用 JPQL 在两个不同的查询中更新两者,例如

UPDATE Person p SET p.Address = "abc" WHERE ID IN(.....ID QUERY)

我的问题是什么会更快?使用JPQL更新是否具有与代码中相同的性能?或者我应该使用 native 查询来不加载实体,因为我只想要性能。

最佳答案

使用查询会更快(并且内存效率更高),因为查询提供程序会将 JPQL 查询转换为 native SQL。此外,如果直接使用实体,则对数据库进行的查询数量将显着增加(对每一行进行一次选择和更新)。

关于java - JPA 是否会像在代码中使用实体时那样在 JPQL 中加载实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com