-1
的MIN/MAX属性考虑以下两个实体:JPA获得连接的实体
@Entity
public class HostMachine {
@ManyToMany(fetch = FetchType.LAZY, targetEntity = Application.class)
private Set<Application> applications;
// getters and setters
}
。
@Entity
public class Application {
@Basic
@Enumerated(EnumType.STRING)
private BusinessCriticality businessCriticality;
@ManyToMany(fetch = FetchType.LAZY, targetEntity = HostMachine.class, mappedBy = "applications")
private Set<HostMachine> hosts;
// getters and setters
}
经典ManytoMany
的关系。 现在我想看到主机上连接应用程序的最高业务关键性。
我试图用一个@Transient
属性和返回主机的每一个查询后设置它,但对于收藏我需要做的每一个要素的查询,所以这是非常不高性能和代码直丑。
然后我试图使用Hibernate的@Formula
:
@Formula("SELECT MIN(a.businessCriticality) FROM Application a")
private BusinessCriticality businessCriticality;
但是这给了我一个MySQLSyntaxErrorException
,即使我可以在MySQL客户端执行查询。
秘密是在字符串内的大括号。谢谢! –