[英]Hibernate calculated collection @Formula
当字段是Collection时(假设它是Set
),是否可以通过Formula
计算出具有Entity的字段?
这是我要达到的目标的虚拟示例:
@Formula(value =
"SELECT NEW com.example.entity.Person(p.name, p.age) FROM Person p")
lateinit var people :Set<Person>
从JavaDoc中获取@Formula
:
定义一个公式(派生值),它是一个SQL片段 ...
您必须考虑在select语句中编写的替换片段:
SELECT (formulaValue) AS propertyName FROM ....
你可以写成的一切formulaValue
可以用在@Formula
。
您的示例不是有效的SQL片段,并且您可以看到,从@Formula
返回多个值是@Formula
。
但是您可以使用@Subselect
和包装对象代替:
@Entity
@Subselect("SELECT name, age FROM Person p")
public class PersonWrapper {
@Id
private String name;
private int age;
}
(在Java中,因为我不了解Kotlin的正确语法)
如果您确实需要在另一个实体中收集这些值,则需要加入一些东西(在示例中是缺少的)并在@OneToMany
或@ManyToMany
使用它。 否则,没有必要在您的实体中拥有所有这些值,因为所有实体将具有相同的集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.