【Hibernate】---【註解】一對多

來源:互聯網
上載者:User

標籤:factor   form   .hbm.xml   hibernate   ota   localhost   1.0   ring   ble   

一、核心設定檔

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>        <property name="hibernate.connection.password">root</property>        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>        <property name="hibernate.connection.username">root</property>                <property name="hibernate.show_sql">true</property>        <property name="hibernate.format_sql">true</property>        <property name="hibernate.hbm2ddl.auto">update</property>        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>        <property name="current_session_context_class">thread</property>        <!--         <mapping resource="com/chinasofti/entity/User.hbm.xml" />        <mapping resource="com/chinasofti/entity/Role.hbm.xml" />        -->        <mapping class="com.chinasofti.entity.User"/>        <mapping class="com.chinasofti.entity.Role"/>    </session-factory></hibernate-configuration>

二、實體類

  User

package com.chinasofti.entity;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.OneToMany;import javax.persistence.Table;@Entity@Table(name="T_USER2")public class User {    @Id    @GeneratedValue(strategy=GenerationType.IDENTITY)    private Integer user_id;    private String user_name;    private String user_password;        @OneToMany(mappedBy="user",cascade=CascadeType.REMOVE)    private Set<Role> roles = new HashSet<Role>();     public Set<Role> getRoles() {        return roles;    }    public void setRoles(Set<Role> roles) {        this.roles = roles;    }    public Integer getUser_id() {        return user_id;    }    public void setUser_id(Integer user_id) {        this.user_id = user_id;    }    public String getUser_name() {        return user_name;    }    public void setUser_name(String user_name) {        this.user_name = user_name;    }    public String getUser_password() {        return user_password;    }    public void setUser_password(String user_password) {        this.user_password = user_password;    }    @Override    public String toString() {        return "User [user_id=" + user_id + ", user_name=" + user_name                + ", user_password=" + user_password + "]";    }}

  Role

package com.chinasofti.entity;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;@Entity@Table(name="T_ROLE2")public class Role {    @Id    @GeneratedValue(strategy=GenerationType.IDENTITY)    private Integer role_id;    private String role_name;    private String role_memo;    @ManyToOne    @JoinColumn(name="user_id")    private User user;    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }    public Integer getRole_id() {        return role_id;    }    public void setRole_id(Integer role_id) {        this.role_id = role_id;    }    public String getRole_name() {        return role_name;    }    public void setRole_name(String role_name) {        this.role_name = role_name;    }    public String getRole_memo() {        return role_memo;    }    public void setRole_memo(String role_memo) {        this.role_memo = role_memo;    }    @Override    public String toString() {        return "Role [role_id=" + role_id + ", role_name=" + role_name                + ", role_memo=" + role_memo + "]";    }}

三、封裝類

package com.chinasofti.entity;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil {    static Configuration CONFIGURATION = null;    static SessionFactory SESSION_FACTORY = null;    static Session SESSION = null;    static{        CONFIGURATION = new Configuration();        CONFIGURATION.configure();        SESSION_FACTORY = CONFIGURATION.buildSessionFactory();        SESSION    = SESSION_FACTORY.openSession();    }    public static SessionFactory getSessionFactory(){        return SESSION_FACTORY;    }    public static Session openSession(){        return SESSION;    }}

四、測試類別

package com.chinasofti.entity;import org.hibernate.Session;import org.hibernate.Transaction;import org.junit.Test;public class TestAnnotation {        @Test    public void removeRoleForUser(){        Session session = HibernateUtil.openSession();        Transaction transaction = session.beginTransaction();        //先找到左冷禪        //User zuolengchan = session.get(User.class, 1);        //再找到角色-掌門        Role zhangmen = session.get(Role.class, 1);        session.delete(zhangmen);        //session.save(zuolengchan);        //session.update(zuolengchan);        transaction.commit();        session.close();    }        @Test    public void testAnnotationOneToMany(){        Session session = HibernateUtil.openSession();        Transaction transaction = session.beginTransaction();        User user = new User();        user.setUser_name("左冷禪");        user.setUser_password("guniang");                //角色        Role role1 = new Role();        role1.setRole_name("掌門");        role1.setRole_memo("zhangmen");                //角色        Role role2 = new Role();        role2.setRole_name("教主");        role2.setRole_memo("jiaozhu");        role1.setUser(user);        role2.setUser(user);        //給左冷禪添加角色        user.getRoles().add(role1);        user.getRoles().add(role2);                //儲存左冷禪-級聯角色        session.save(user);        transaction.commit();        session.close();    }}

 

 

補充

【Hibernate】---【註解】一對多

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.