[英]Hibernate One-to-many mapping
我是休眠的新手,試圖學習一對多的關系,代碼正在執行,沒有任何錯誤,但是它只創建表而沒有在其上插入值。 我想在Employee和他分配的任務之間建立一對多的關系。 一名員工可以完成多項任務。
Employee.java
@Entity
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
@OneToMany
private Set<Task> taklist = new HashSet<Task>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Task> getTaklist() {
return taklist;
}
public void setTaklist(Set<Task> taklist) {
this.taklist = taklist;
}
}
Task.java
@Entity
public class Task {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int taskid;
private String taskname;
public int getTaskid() {
return taskid;
}
public void setTaskid(int taskid) {
this.taskid = taskid;
}
public String getTaskname() {
return taskname;
}
public void setTaskname(String taskname) {
this.taskname = taskname;
}
}
的hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- Assume test is the database name -->
<property name="hibernate.connection.url">
jdbc:mysql://localhost/hibernate
</property>
<property name="hibernate.connection.username">
root
</property>
<property name="hibernate.connection.password">
root
</property>
<property name="connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<mapping class="com.sumeet.onetomany.Employee"></mapping>
<mapping class="com.sumeet.onetomany.Task"></mapping>
</session-factory>
</hibernate-configuration>
App.java
package com.sumeet.onetomany;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class App {
public static void main(String args[]){
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
Employee emp = new Employee();
emp.setName("Arun");
Task task = new Task();
task.setTaskname("Office Work");
Task task2 = new Task();
task2.setTaskname("Home Work");
emp.getTaklist().add(task);
session.beginTransaction();
session.save(emp);
session.close();
}
}
您需要提交交易
Transaction tx = session.beginTransaction();
session.save(emp);
tx.commit(); // Need to commit transaction
session.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.