サーチ…
パラメーター
| カラム | カラム |
|---|---|
| @TableGenerator | 自動ID作成のためのテーブルジェネレータ戦略の使用 |
| @GeneratedValue | フィールドに適用される値が生成された値であることを指定します。 |
| @Id | フィールドを識別子として注釈する |
| @ManyToOne | 従業員と部署の多対1の関係を指定します。この注釈は多くの面でマークされています。複数の従業員が1つの部門に所属しています。だからDepartmentはEmployeeエンティティの@ManyToOneで注釈が付けられています。 |
| @JoinColumn | 関連エンティティの外部キーを格納するデータベーステーブルの列を指定します。 |
従業員から部署へのManyToOneの関係
従業員組織
@Entity
public class Employee {
@TableGenerator(name = "employee_gen", table = "id_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", allocationSize = 1)
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "employee_gen")
private int idemployee;
private String firstname;
private String lastname;
private String email;
@ManyToOne
@JoinColumn(name = "iddepartment")
private Department department;
// getters and setters
// toString implementation
}
部門エンティティ
@Entity
public class Department {
@Id
private int iddepartment;
private String name;
// getters, setters and toString()
}
テストクラス
public class Test {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("JPAExamples");
EntityManager em = emf.createEntityManager();
EntityTransaction txn = em.getTransaction();
Employee employee = new Employee();
employee.setEmail("[email protected]");
employee.setFirstname("Prasad");
employee.setLastname("kharkar");
txn.begin();
Department department = em.find(Department.class, 1);//returns the department named vert
System.out.println(department);
txn.commit();
employee.setDepartment(department);
txn.begin();
em.persist(employee);
txn.commit();
}
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow