JPA 笔记

来源:互联网 发布:渠道 知乎 编辑:程序博客网 时间:2024/06/01 23:10

1. AccessType.FIELD AccessType.PROPERTY

FIELD 和PROPERTY的区别实际上不是JPA特有的,像很多编程语言,例如C#或者js都有。FIELD就是java中的域,是一个实际存在的字段。但是属性可能是对特定的域进行计算之后的存取器。firstName和lastName是field,fullName是property,但是只有属性获取器。

@Getter@Setterclass Person{private String firstName;private String lastName;public String getFullName(){return firstName+" "+lastName;}}

2. 

-------------------------------------------

|employee        |department        |

|id                       |id                         |

|depId   (fk)       |                            |

-------------------------------------------

@Entity@Table(name="employee")class Employee{@Id private long id;@ManyToOne@JoinColumn(name="depId") //default is department_idprivate Department department;}@Entity@Table(name="department")class Department{@Id private long id;@OneToMany(mappedBy="department")private Set<Employee> employees;}
拥有字段的一方成为所有方或者主控方,另一方成为被空方。所有方可以使用@JoinColumn,指定的名字为数据库表的字段名;被控方可以使用mappedBy,指定的名称为entity的字段名。