繁体   English   中英

Hibernate计算的集合@Formula

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM