jpa相关注解
JPA(Java Persistence API)是一种Java规范,定义了一套标准的对象关系映射(ORM)API,用于将Java对象映射到关系型数据库中。JPA旨在统一各种ORM框架之间的差异,提供一种标准化的ORM解决方案,以便开发人员可以在不同的ORM框架之间进行切换,而无需重写代码。
Hibernate是一种ORM框架,它是JPA的实现之一,使用Hibernate可以轻松地将Java对象映射到关系型数据库中。Hibernate是一个功能强大的ORM框架,提供了很多高级功能,例如缓存、事务管理、延迟加载等。
因此,Hibernate可以看作是JPA的一种实现方式。Hibernate实现了JPA规范中的所有接口和类,同时还提供了一些扩展功能,使得开发人员可以更加方便地进行ORM操作。
@Data
@Entity(name = “upload_files”)
@Table(appliesTo = “upload_files”, comment = “上传附件表”)
@Entity
标识一个 Java 类为 JPA 实体类。例如:
@Entity
@Table(name = "users")
public class User {
// 实体类属性和方法
}
@Table
定义实体类和数据库表之间的映射关系,可以指定表名和其他属性。例如:
@Entity
@Table(name = "users", uniqueConstraints = {
@UniqueConstraint(columnNames = "username"),
@UniqueConstraint(columnNames = "email")
})
public class User {
// 实体类属性和方法
}
@Id
标识实体类的主键字段,可以用于属性或者 getter 方法上。例如:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
指定实体类属性和数据库表字段之间的映射关系,可以指定列名、长度、是否可为空等属性。例如:
@Column(name = "user_name", nullable = false, length = 50)
private String userName;
@GeneratedValue注解用于指定主键属性的生成策略,有多种生成策略可供选择,例如:
GenerationType.AUTO:自动选择主键生成策略。
GenerationType.IDENTITY:使用数据库的自增长策略。
GenerationType.SEQUENCE:使用数据库的序列生成策略。
GenerationType.TABLE:使用表生成策略。
@ManyToOne 和 @OneToMany
@ManyToOne和@OneToMany注解用于标识实体类之间的关系
@Entity
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "customer_id")
private Customer customer;
// other properties and methods
}
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy = "customer")
private List<Order> orders;
// other properties and methods
}