我们正在使用Hibernate来加载符合特定条件的对象。如果用户决定查看其中一个对象的详细信息,我想提取有关该对象的一些其他信息。我想展示的“属性”之一将需要一个相当复杂的SQL查询,但评估为一个简单的布尔值。
使用Hibernate执行此操作的正确方法是什么?有没有办法表明一个属性,其值是SQL查询的结果?如果是这样,有没有办法阻止在需要之前调用查询?
或者我接近这个错误?
答案 0 :(得分:1)
根据查询的复杂程度和返回的内容,您可以使用formula或将“属性”映射为将延迟加载的单独实体(many-to-one)。 / p>
答案 1 :(得分:1)
如何定义命名查询?在hibernate注释中,您可以在实体类上添加注释,如下所示:
@NamedNativeQuery(name = "user.someUsers", query = "select u.* from users u where someparam = :someValue...", resultClass = User.class)
我确信你也可以在hibernate的XML配置中做到这一点,但我不知道语法。这不是对象本身的映射属性,但只要您想要获取该特定信息,就可以使用此查询。