标签:hibernate
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(); } }
标签:hibernate
原文地址:http://blog.csdn.net/liangwenmail/article/details/47344963