0
|
Suraj Gautam · 技术社区 · 6 年前 |
![]() |
1
1
对默认情况下,存储库上的任何操作都是原子操作。
对如果您有@Transactional围绕该方法执行这两个操作。在该方法返回之前,事务将保持打开状态。
您有多种选择。
我想说第二个或第三个选项比第一个更好。 |
![]() |
2
1
我很好奇你为什么在偷懒的时候有一个OneToOne?典型的OneToOnes不是这样设置的。延迟加载是一种设计模式,用于尽可能延迟对象的初始化,通常在获取列表时使用。使用Hibernate,当用户尝试获取资源时,事务通常会关闭。我建议删除懒散的Fetch并尝试这样做。 如果你不能,这里有一些其他有用的建议,你可以试试。
实际上,您可以在
这将覆盖内置的findAll,并使用已经为您获取的用户配置文件获取列表。 您可以做的另一件事是创建一个UserProfileRepository,并在获得用户后获取配置文件,例如:
然后在DTO中,您可以执行以下操作:
|
![]() |
3
1
解决此问题的最佳方法是获取
在存储库中创建方法:
确保您的UserResponseDTO有一个适当的构造函数,该构造函数按此顺序接受此参数。 这是最有效的方法。它通过不提取实体来节省内存,这些实体需要额外的内存进行脏检查。此外,这是更具可扩展性的,因为如果有人向用户或概要文件实体添加属性,他们不会影响此查询。最后,这也是更少的代码编写。 我推荐这种方法。 这种技术被称为 JPQL Constructor Expression 。 |
![]() |
4
0
您正在尝试延迟加载
要解决此问题,可以将实体映射到DTO内部
您还可以获取
|
![]() |
TheCrunchyPotato · JPA查询找不到正确的构造函数 2 年前 |
![]() |
Maiko Kingma · hibernate何时加载映射关系 6 年前 |
![]() |
OOvic · 使用JoinTable实现多个关系中的JPQL查询 6 年前 |
![]() |
Jovan0042 · 在H2中持久化多个实体引发异常 6 年前 |
![]() |
Nemeth Attila · 如何编写多对多关联表的查询 6 年前 |