使用Hibernate通过@ Any-Mapped属性查找实体

时间:2018-09-12 06:10:43

标签: java database hibernate jpa

我有一个Interface Student和两个实现类Girl和Boy。

然后我有一个StudentInfo类,其中使用@ Any-Annotation映射了Student

@AnyMetaDef(name= "StudentMetaDef", metaType = "string", idType = "int",
metaValues = {
    @MetaValue(value = "B", targetEntity = Boy.class),
    @MetaValue(value = "G", targetEntity = Girl.class)
})
@Any(
    metaDef = "StudentMetaDef",
    metaColumn = @Column(name = "student_gender")
)
@JoinColumn( name = "student_id" )
private Student student;

现在如何在CrudRepository中按学生查找StudentInfo?

实际上使用两种本机查询方法解决了该查询,如下所示:

select *
from student_info info
where info.student_gender = 'B'
and info.student_id = :id

希望有人知道更好的解决方案。

0 个答案:

没有答案