1.MappedSuperclass 注解
1.@MappedSuperclass注解使用在父类上面,是用来标识父类的,用来抽取数据库的共同属性
2.@MappedSuperclass标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够隐射在其子类对用的数据库表中
3.@MappedSuperclass注解不能再有@Entity或@Table注解
2.@DynamicInsert@DynamicUpdate注解
1.添加和更新数据时,数据为null的字段不进行更新
3.@Enity 注解
1.表明该类 (UserEntity) 为一个实体类,它默认对应数据库中的表名是user_entity。
@Entity(name = "xwj_user")
查看@Entity注解,发现其只有一个属性name,表示其所对应的数据库中的表名
@Table 当实体类与其映射的数据库表名不同名时需要使用 @Table注解说明,该标注与 @Entity 注解并列使用,置于实体类声明语句之前,可写于单独语 句行,也可与声明语句同行。
@Table注解还有两个选项 catalog 和 schema 用于设置表所属的数据库目录或模式,通常为数据库名
4.@Id注解
注释指定表的主键,它可以有多种生成方式:
1)TABLE:容器指定用底层的数据表确保唯一;
2)SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);
3)IDENTITY:使用数据库的IDENTITY列莱保证唯一;
4)AUTO:由容器挑选一个合适的方式来保证唯一;
5)NONE:容器不负责主键的生成,由程序来完成。
@GeneratedValue(strategy = GenerationType.IDENTITY)
本文详细介绍了JPA中的@MappedSuperclass注解,用于创建非实体父类,其属性可在子类数据库表中映射。@DynamicInsert和@DynamicUpdate注解确保只有非空字段在插入和更新时才会被处理。同时,解释了@Entity注解表示实体类,并讨论了@Table注解在实体类与数据库表名不同时的使用,以及@Id注解在定义主键生成策略上的多种选择。
510

被折叠的 条评论
为什么被折叠?



