我有一个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
希望有人知道更好的解决方案。