Hibernate多对一实例【xml和注解】many-to-one(十六)

来源:互联网 发布:首届全球程序员节logo 编辑:程序博客网 时间:2024/06/13 01:31

1 容易出错的地方

User为多,user中用manytoone的时候 记得类中引入Group的类

步骤如下

2 更改User类

package com.sm.hibernate.pojo;public class User {private int id;private String name;private int qq;private Grade grade;public Grade getGrade() {return grade;}public void setGrade(Grade grade) {this.grade = grade;}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 int getQq() {return qq;}public void setQq(int qq) {this.qq = qq;}}

更改对应配置文件

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.sm.hibernate.pojo.User" table="hib_user"><id name="id"><generator class="native"></generator></id><property name="name"></property><property name ="qq"></property><many-to-one name = "grade"  cascade="all" column="gradeid" class ="com.sm.hibernate.pojo.Grade"></many-to-one>    </class></hibernate-mapping>

3 添加Grade类

package com.sm.hibernate.pojo;public class Grade {public int id;private String name;private int classNum;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 int getClassNum() {return classNum;}public void setClassNum(int classNum) {this.classNum = classNum;}}

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.sm.hibernate.pojo.Grade" table="hib_grade"><id name="id"><generator class="native"></generator></id><property name="name"></property><property name ="classNum"  type="java.lang.Integer"></property>    </class></hibernate-mapping>

4 测试类更改

package com.sm.hibernate.Test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import com.sm.hibernate.pojo.Grade;import com.sm.hibernate.pojo.User;public class Test {public static void main(String[] args) {SessionFactory factory  = new Configuration().configure().buildSessionFactory();Session session = factory.openSession();session.beginTransaction();User user = new User();user.setQq(323222);user.setName("abolo");Grade g = new Grade();Grade grade = new Grade();grade.setName("ww");grade.setClassNum(44);user.setGrade(grade);session.save(user);session.save(grade);session.getTransaction().commit();}}

5 结果

Hibernate: insert into hib_grade (name, classNum) values (?, ?)Hibernate: insert into hib_user (name, qq, gradeid) values (?, ?, ?)

6

package com.bjsxt.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="t_group")public class Group {private int id;private String name;@Id@GeneratedValuepublic 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;}}

7 下面是注解版

package com.bjsxt.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToOne;import javax.persistence.Table;@Entity@Table(name="t_user")public class User {private int id;private String name;private Group group;@ManyToOnepublic Group getGroup() {return group;}public void setGroup(Group group) {this.group = group;}@Id@GeneratedValuepublic 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;}}




原创粉丝点击