我有两个实体A
和B
具有多对多关系。实体A
将枚举属性C
另存为字符串。现在,我希望B
拥有所有已连接C
的最大A
。
我可以轻松编写JPA查询,但是你在哪里放置跨越两个实体的查询?我与DAO合作,一次只能与一个实体合作。我想在Java中循环中从A
获取所有B
,以便它在一个事务中运行,但我认为这可能导致许多选择只需要一个。
欢迎任何建议。
更新
考虑以下示例:
一家珠宝店与珠宝店有着OneToMany的关系。现在我想要一个传递属性" largestPieceSize"它反映了连接实体的max()值。尺寸属性。
答案 0 :(得分:1)
循环是非常低效的解决方案,因为它不必要地从数据库中获取大量不需要的数据。
通常,编写JPQL查询,选择查询中涉及的任何实体,并将查询放入该实体的DAO类中。
由于您在此处返回B
,因此在我看来,将查询放在DAO<B>
中是最自然的选择。