JPA常用注解

@MappedSuperclass
这个注解表示在父类上面的,用来标识父类。
基于代码复用和模型分离的思想,在项目开发中使用JPA的@MappedSuperclass注解将实体类的多个属性分别封装到不同的非实体类中。例如,数据库表中都需要id来表示编号,id是这些映射实体类的通用的属性,交给jpa统一生成主键id编号,那么使用一个父类来封装这些通用属性,并用@MappedSuperclas标识。
注意:
1.标注为@MappedSuperclass的类将不是一个完整的实体类,它将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。
2.标注为@MappedSuperclass的类不能再标注@Entity或@Table注解,也无需实现序列化接口。
@Id是必须的,对应表的主键.
@GeneratedValue表示主键的生成方式,多数都是使用AUTO
把主键生成策略交给持久化引擎(persistence engine),持久化引擎会根据数据库在三种主键生成策略中选择其中一种。此种主键生成策略比较常用,由于JPA默认的生成策略就是GenerationType.AUTO,所以使用此种策略时.可以显式的指定@GeneratedValue(strategy = GenerationType.AUTO)也可以直接@GeneratedValue

@MappedSuperclass //它不会保存到数据库
public class BaseDomain {
    @Id//对应表的主键
    @GeneratedValue
    private Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}

@Entity表明这是一个实体类,表示一个由jpa管理的持久对象,对应数据库的一个表,要与数据库做orm映射,默认表的名字就是类名,表中的字段就是类中的属性。它的定义如下:其中name属性表示用JPQL语句时写的表的名字,如果没有在@Table注解中指定表名,这个名字也将作为表名映射到数据库。
@Table :对应的数据表名,name: 用来指定要映射的表名。
当实体类与其映射的数据库表名不同名时需要使用 @Table注解说明

//产品表
@Entity//表示一个由jpa管理的持久对象,对应数据库的一个表
@Table(name = "product")//name: 用来指定要映射的表名
public class Product extends BaseDomain{
	private String name; //产品名称
    private String color; //产品颜色
    private String pic; //大图片
    private String smallPic;//小图片
    private BigDecimal costPrice;//成本价
    private BigDecimal salePrice;//销售价
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: JPA是Java Persistence API的简称,是SUN公司引入的ORM规范,用于简化Java应用程序的持久化开发。JPA提供了一系列的注解,用于定义实体类与数据库表之间的映射关系。常用的JPA实体注解包括: 1. @Entity: 将Java类标记为JPA实体类,表示该类与数据库表进行映射。 2. @Table: 指定实体类对应的数据库表的名称。 3. @Id: 标记实体类的主键字段。 4. @GeneratedValue: 指定主键的生成策略,如自增长、UUID等。 5. @Column: 指定实体类属性与数据库表字段的映射关系。 6. @OneToOne: 定义一对一关系,用于关联两个实体类。 7. @OneToMany: 定义一对多关系,用于关联一个实体类与多个实体类。 8. @ManyToOne: 定义多对一关系,用于关联多个实体类与一个实体类。 9. @ManyToMany: 定义多对多关系,用于关联多个实体类与多个实体类。 以上是JPA常用的实体注解,通过使用这些注解,可以方便地定义实体类与数据库表之间的映射关系,简化开发过程。\[1\]\[3\] #### 引用[.reference_title] - *1* *3* [JPA 常用实体注解使用总结](https://blog.csdn.net/swebin/article/details/96458821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [spring boot jpa学习:1.Model类的注释annatation](https://blog.csdn.net/sandalphon4869/article/details/105519101)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值