Hibernate集合组件属性映射总结

集合组件属性映射的用法,挺适合在 Hibernate 里复杂结构的场景。你知道,集合一般都拿来装字符串,但其实更常见的做法,是把它拿来装组件,比如一堆地址、联系方式这种组合对象。这样一来,结构清晰,映射也灵活,挺实用的。

Hibernate里的集合属性映射有点意思。比如你定义一个List

,只要Address是个可映射的组件类,那就能自然地嵌进主实体里。不用建独立表、也不用冗余字段,代码也挺清爽的。

@ElementCollection注解就行,配合@Embeddable组件类,Hibernate 会自动把它映射成子表结构。比如:一个User有多个PhoneNumber,就可以搞成这样:

@ElementCollection
@CollectionTable(name = "user_phone", joinColumns = @JoinColumn(name = "user_id"))
private List phoneNumbers;

映射完之后查询也方便,懒加载、级联操作都能搞定。要注意的就是:组件类不能有自己的@Id,不然 Hibernate 会报错。

如果你对 Hibernate 映射还有点模糊,推荐几个参考资料:

如果你项目里有些字段组合得比较紧凑,或者不太适合单独建表,那组件集合映射还挺适合用一用的,结构清晰、操作灵活。

ppt 文件大小:911KB