1 添加支持jap注解的包;
2 在持久化类中配置注解;
3 在配置中配置映射;
4 用 AnnotationConfigurration配置;
5 常用注解:
@Entity 表示持久化类;
@Id 主键
@GeneratedValue 主键自增
@ManyToOne(cascade=(CascadeType.ALL)) 所有操作进行级联
@@OneToMany(cascade=(CascadeType.ALL),mappedBy="classes") mappedBy 拥有该注解的类放弃控制权
6 双向关联通常和关联双方都加cascade及mappBy一起用;
双向多对一:
package com.tem.hib;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Student {
@Id
@GeneratedValue
private Integer sid;
private String sname;
@ManyToOne(cascade=(CascadeType.ALL))
private Classes classes;
public Classes getClasses() {
return classes;
}
public void setClasses(Classes classes) {
this.classes = classes;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
package com.tem.hib;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Classes {
@Id
@GeneratedValue
private Integer cid;
private String cname;
@OneToMany(cascade=(CascadeType.ALL),mappedBy="classes")
private Set<Student> students=new HashSet<Student>();
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
}
package com.tem.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import com.tem.hib.Classes;
import com.tem.hib.Student;
public class Test {
public static void main(String[] args) {
Configuration cfg=new AnnotationConfiguration().configure();
// SchemaExport schema=new SchemaExport(cfg);
// schema.create(true, true);
SessionFactory sf=cfg.buildSessionFactory();
Session session=sf.openSession();
session.beginTransaction();
Student s=new Student();
Classes c=new Classes();
c.setCname("C3");
s.setSname("a1");
s.setClasses(c);
c.getStudents().add(s);
session.save(c);
session.getTransaction().commit();
}
}
原文:http://blog.csdn.net/liangwenmail/article/details/47344963