定义 JPA 实体对象

一、常⽤ JPA 注解

1、实体

A、@Entity(重点)

a、用于将Java类标记为实体

b、实体是轻量级的持久化域对象。它通常表示关系型数据库中的表实体的实例对应于该表中的一行

B、@MappedSuperclass

a、将Java类标记为其他实体类的超类

b、在继承关系中,如果一个类被标记为@MappedSuperclass,那么它的属性将被继承到子类中,并且这些属性将被映射到子类对应的表的列

c、@MappedSuperclass 本身不是实体,无法查询或持久化到数据库中。(重点)

C、@Table(name)(重点)

a、指定实体映射到的表的名称

b、默认情况下,表名与实体名相同,但是可以使用 @Table 注释来指定不同的表名。

2、主键(重点)

A、 @Id

a、 @GeneratedValue(strategy, generator)

a1、用于生成自增

a2、strategy参数指定生成策略;generator参数指定生成器的名称

a3、@GeneratedValue(strategy=GenerationType.AUTO)表示使用默认的自增策略生成

b、@SequenceGenerator(name, sequenceName)

b1、用于指定序列生成器

b2、name参数指定生成器的名称;sequenceName参数指定数据库中序列的名称

b3、@SequenceGenerator(name="seq_gen", sequenceName="SEQ_GEN_ID")表示使用

为"seq_gen"的生成器来生成名为"SEQ_GEN_ID"的序列值

3、映射

A、@Column(name, nullable, length, insertable, updatable)(重点)

a、将Java类的字段映射到数据库表

b、name参数用于指定列名,nullable参数用于指定是否允许该列为空,length参数用于指定列的长度,insertable参数用于指定该列是否可以插入,updatable参数用于指定该列是否可以更新

c、@Column(name = "user_name", nullable = false, length = 50, insertable = true, updatable = true)指定将Java类中的"user_name"字段映射到数据库表的"user_name"列,并且该列不允许为空。

B、@JoinTable(name)(重点)

a、描述两个实体类之间的多对多关系

b、参数name,用于指定关联表的名称。

c、@JoinTable(name = "book_author")指定将"book_author"作为关联的名称来表示Book和

Author之间的多对多关系。

C、@JoinColumn(name)(重点)

a、描述实体之间的单向或双向关联关系

b、参数name,用于指定关联的名称。

c、@JoinColumn(name = "user_id")指定使用"user_id"来表示User和Order之间的关联关系。

4、关系(重点)

A、@OneToOne、@OneToMany、@ManyToOne、@ManyToMany

B、@OrderBy(排序)

二、Project Lombok

1、Project Lombok 能够⾃动嵌⼊ IDE 和构建⼯具,提升开发效率

2、常⽤功能

• @Getter / @Setter(重点)

• @ToString(重点)

• @NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor

• @Data(重点)

• @Builder(重点)

• @Slf4j / @CommonsLog / @Log4j2(重点)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以按照以下步骤生成JPA实体类: 1. 定义实体类 首先,在Java Package中创建一个新类,该类将成为您的数据表的实体类。这个类应该包含所有的字段,以及它们的getter和setter方法。 例如,如果您要创建一个名为“Person”的实体类,可以包含以下字段: ``` @Column(name="id") private Long id; @Column(name="name") private String name; @Column(name="age") private int age; ``` 2. 定义主键 在JPA中,每个实体类都必须有一个主键。您可以使用@Id注解来定义主键字段。 例如: ``` @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="id") private Long id; ``` 这个例子中,我们使用@Id注解来标识id字段作为主键,并使用@GeneratedValue注解来指定主键的生成策略。 3. 定义关联关系 如果您的数据表与其他表有关联关系,例如一对多或多对多关系,您需要使用@OneToMany、@ManyToOne或@ManyToMany注解来定义它们。 例如,如果您的Person实体类需要与Address实体类建立一对多关系,可以使用以下代码: ``` @OneToMany(mappedBy = "person", cascade = CascadeType.ALL) private List<Address> addresses; ``` 这个例子中,使用@OneToMany注解来定义一对多关系,并使用mappedBy属性来指定关系的反方向属性。 4. 定义其他注解 您还可以使用其他JPA注解来定义实体类,例如@Table、@Column、@Temporal等。 例如,如果您要指定数据表的名称和日期字段的类型,可以使用以下代码: ``` @Entity @Table(name = "person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="id") private Long id; @Column(name="name") private String name; @Column(name="age") private int age; @Temporal(TemporalType.DATE) @Column(name="date_of_birth") private Date dateOfBirth; // ... } ``` 这个例子中,我们使用@Entity和@Table注解指定实体类对应的数据表和名称,使用@Temporal注解指定日期字段的类型。 5. 生成数据库表 最后,您可以使用JPA提供的自动创建表功能来生成数据库表。只需在应用程序启动时添加以下代码即可: ``` EntityManagerFactory emf = Persistence.createEntityManagerFactory("my-persistence-unit"); EntityManager em = emf.createEntityManager(); ``` 这个例子中,我们使用Persistence.createEntityManagerFactory()方法创建一个EntityManagerFactory对象,并使用它来创建一个EntityManager对象。您可以使用EntityManager对象来执行各种数据库操作,例如插入、更新、删除和查询数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一点知趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值