Hibernate的映射文件中可以使用的主要属性有:
- @Entity:定义实体类,对应数据库表。
- @Table:定义实体类关联的数据库表名。
- @Id:定义实体类的主键属性。
- @GeneratedValue:定义主键生成策略,如AUTO、IDENTITY、SEQUENCE等。
- @Column:定义实体类属性关联的数据库表字段。可以指定字段长度、是否为空、唯一等约束。
- @Basic:定义普通属性映射,可选。
- @Transient:定义非映射属性,可选。
- @OneToOne、@OneToMany、@ManyToOne、@ManyToMany:定义对象关系映射,实体类之间的关联关系。
- @JoinColumn:用于定义@OneToOne、@ManyToOne关联关系中外键字段的名称。
- @JoinTable:用于定义@ManyToMany关联关系的中间表。
- @SequenceGenerator:定义使用数据库序列来生成主键的值。
- @SequenceGenerator:定义使用数据库表来生成主键的值。
- @Lob:定义实体中大字段的映射,将其映射为BLOB、CLOB等数据库类型。
- @Temporal:定义日期属性的映射到数据库的方式,如DATE、TIME、TIMESTAMP等。
- @Cascade:定义对象关系维护的策略,如 save-update、delete、remove等。
- @Inheritance:定义类的继承映射策略,如单表继承、联表继承等。
除了这些常用属性外,Hibernate还提供其他属性用于更复杂的映射,如二级缓存映射、查询映射等。这些映射属性定义了对象模型与数据库模式之间的对应关系,指定了表名、主键、属性、relationship等的映射规则。
理解不同映射属性的含义和用法,是使用Hibernate进行对象-关系映射的基础。我们可以通过注解或XML映射文件灵活地将Java对象模型与关系数据库模式之间建立对应关系,实现持久化存储和操作。