我有2个db表:树和叶子。这显然是一对多的关系。我想在Tree实体中有一个leavesCount字段 - 它应该不是持久化的(@Transient),而是每次将实体加载到上下文时通过查询获得。有可能实现吗?
我知道我可以制作@OneToMany并获得该集合的大小,但我对查询方法非常感兴趣。
答案 0 :(得分:0)
您可以定义命名查询,并在需要时执行它。
否则,您可以使该字段持久化,并确保每次添加叶子时都更新它。
答案 1 :(得分:0)
查询用于与数据库交互。如果将属性标记为@Transient,则此属性将不会保留在数据库中,然后您无法向数据库询问此属性。这就像JPA不存在。所以你不能把你的瞬态属性放在你的查询中。 TBH我从未尝试在查询中达到瞬态属性,所以我不能100%确定,但无论如何你不应该这样做,因此它不应该工作。