这是不可能的,您无法查询
Embeddable。从JPA Wikibook:
嵌入式收藏
的
ElementCollection映射可以被用来定义的集合Embeddable的对象。这不是Embeddable对象的典型用法,因为对象没有嵌入到源对象的表中,而是存储在单独的收集表中。类似于aOneToMany,不同之处在于目标对象是Embeddable
而不是Entity。这使简单对象的集合易于定义,而无需简单对象定义逆映射Id或ManyToOne逆映射。ElementCollection还可以覆盖映射或表的集合,因此可以让多个实体引用同一个Embeddable类,但每个实体都将其依赖对象存储在单独的表中。使用a
ElementCollection代替a 的局限性OneToMany在于, 不能 独立于其父对象 来查询
,持久化和合并目标对象。它们是严格私有的(从属)对象,与Embedded映射相同。上没有层叠选项ElementCollection,目标对象始终与其父对象保持,合并或删除。ElementCollection仍然可以使用提取类型,并且默认为LAZY,与其他集合映射相同。
要实现所需的功能,请使用
OneToMany和
Entity而不是
ElementCollection和
Embeddable。或更改您的方法并查询
Person。



