有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准
https://blog.zysicyj.top
全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`
在JPA中,实体之间的关联关系是通过注解来定义的。以下是一些常用的关联关系注解:
@OneToOne
表示一对一的关系。当两个实体类中的每一个实例只能与另一个实体类中的一个实例相关联时使用。
示例:
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@OneToOne
private Profile profile;
}
@Entity
public class Profile {
@Id
@GeneratedValue
private Long id;
@OneToOne(mappedBy = "profile")
private User user;
}
@OneToMany
表示一对多的关系。当一个实体类的一个实例可以与另一个实体类的多个实例相关联时使用。
示例:
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@OneToMany(mappedBy = "user")
private List<Post> posts;
}
@Entity
public class Post {
@Id
@GeneratedValue
private Long id;
@ManyToOne
private User user;
}
@ManyToOne
表示多对一的关系。当多个实体类的实例可以与另一个实体类的一个实例相关联时使用。
示例:
@Entity
public class Post {
@Id
@GeneratedValue
private Long id;
@ManyToOne
private User user;
}
@ManyToMany
表示多对多的关系。当多个实体类的实例可以与另一个实体类的多个实例相关联时使用。
示例:
@Entity
public class Student {
@Id
@GeneratedValue
private Long id;
@ManyToMany
private List<Course> courses;
}
@Entity
public class Course {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy = "courses")
private List<Student> students;
}
@JoinColumn
用于定义外键列的名称,并且可以用于@OneToOne、@OneToMany和@ManyToOne注解中。
示例:
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@OneToOne
@JoinColumn(name = "profile_id")
private Profile profile;
}
@JoinTable
用于定义多对多关系中的连接表。
示例:
@Entity
public class Student {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(
name = "student_course",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "course_id")
)
private List<Course> courses;
}
这些注解允许你定义实体之间的关系,并且JPA提供器会根据这些注解来生成相应的数据库表结构和查询。
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 小朱
评论
隐私政策
0/500
滚动到此处加载评论...


