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 映射还有点模糊,推荐几个参考资料:
- Java 反射查询数据库映射 Bean 集合
- Hibernate 对象/关系映射详解
- 一对一关系映射-Hibernate 实体关系映射
- hibernate xml 配置和@注解配置关系映射
- Hibernate 一对多单向映射示例
如果你项目里有些字段组合得比较紧凑,或者不太适合单独建表,那组件集合映射还挺适合用一用的,结构清晰、操作灵活。
911KB
文件大小:
评论区