Toplink_JPA注解参考
**Toplink JPA注解参考** Toplink JPA(Java Persistence API)是Oracle公司提供的一种对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。JPA提供了丰富的注解,使得在Java类上可以直接定义数据存储的相关属性,简化了开发流程。尽管这个资料可能相对较旧,但基础的JPA注解仍然是理解和使用JPA的关键部分。 **1. 主键注解 (@Id)** 在JPA中,@Id注解用于标记一个字段作为实体的主键。每个实体至少需要一个主键字段,通常它是唯一的标识符。例如: ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // ... } ``` 这里,`@GeneratedValue`注解用于指定主键生成策略,`GenerationType.IDENTITY`表示主键由数据库自动生成。 **2. 实体注解 (@Entity)** @Entity注解标识一个Java类为JPA实体,它将被映射到数据库中的表。例如: ```java @Entity public class Product { // ... } ``` **3. 联合主键注解 (@EmbeddedId)** 对于复合主键,可以使用@EmbeddedId注解配合一个嵌入式类来表示。例如: ```java @Embeddable public class OrderId { private String orderId; private int customerId; } @Entity public class Order { @EmbeddedId private OrderId id; // ... } ``` **4. 字段注解 (@Column)** @Column注解用于指定实体字段与数据库表列的映射,包括长度、是否允许为空等属性。例如: ```java @Entity public class Employee { @Id private Long id; @Column(length = 50, nullable = false) private String name; // ... } ``` **5. 多对一/一对多注解 (@ManyToOne/@OneToMany)** 这些注解用于描述两个实体之间的关联关系。例如,一个部门有多个员工: ```java @Entity public class Department { @Id private Long id; @OneToMany(mappedBy = "department") private List<Employee> employees; // ... } @Entity public class Employee { @Id private Long id; @ManyToOne @JoinColumn(name = "DEPARTMENT_ID") private Department department; // ... } ``` **6. 一对一注解 (@OneToOne)** @OneToOne注解表示一个实体与另一个实体之间的一对一关系。例如,一个人只有一个身份证: ```java @Entity public class Person { @Id private Long id; @OneToOne(mappedBy = "person", cascade = CascadeType.ALL) private IdentityCard identityCard; // ... } @Entity public class IdentityCard { @Id private Long id; @OneToOne @JoinColumn(name = "PERSON_ID") private Person person; // ... } ``` **7. 多对多注解 (@ManyToMany)** @ManyToMany注解表示两个实体之间的多对多关系。例如,学生可以选修多门课程,课程也可以被多个学生选修: ```java @Entity public class Student { @Id private Long id; @ManyToMany @JoinTable(name = "STUDENT_COURSE", joinColumns = @JoinColumn(name = "STUDENT_ID"), inverseJoinColumns = @JoinColumn(name = "COURSE_ID")) private Set<Course> courses; // ... } @Entity public class Course { @Id private Long id; @ManyToMany(mappedBy = "courses") private Set<Student> students; // ... } ``` **8. 集合注解 (@ElementCollection)** 用于将非实体对象集合映射到数据库表中。例如,存储用户的标签: ```java @Entity public class User { @Id private Long id; @ElementCollection @CollectionTable(name = "USER_TAGS", joinColumns = @JoinColumn(name = "USER_ID")) private Set<String> tags; // ... } ``` 以上就是关于Toplink JPA注解的一些基本介绍,虽然这个文档可能有些陈旧,但它仍然能够帮助理解JPA的核心概念和常用注解。在实际开发中,JPA已经发展了许多新特性,比如Spring Data JPA的Repository抽象,以及更现代的ORM框架如Hibernate,它们在注解使用和功能上可能会有所不同,但基础概念是相通的。学习并熟练掌握这些注解,将有助于提升你在Java持久化层的开发能力。
- 1
- 粉丝: 3
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助