hibernate多表关联配置

来源:互联网 发布:黑魂3剧情解析 知乎 编辑:程序博客网 时间:2024/05/29 13:10

collection 表跟tag表关联,tag表的colle_id对就collection表的id。这是一个典型的关联关系。

CollectionImplTest.java文件中有详细的调用方法

CollectionBean.hbm.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.collection.bean">    <class name="CollectionBean" table="collection">        <id name="id">            <generator class="native"></generator>        </id>        <property name="userid"></property>        <property name="url"></property>        <property name="username"></property>        <property name="name"></property>        <property name="createTime" column="create_time"></property>        <one-to-one name="tag" property-ref="collection" cascade="save-update" ></one-to-one>     </class></hibernate-mapping>

CollectionBean .java

package com.collection.bean;public class CollectionBean implements java.io.Serializable {    private static final long serialVersionUID = 1L;    private int id;    private String name;    private String url;    private String createTime;    private int userid;    private TagBean tag;    public TagBean getTag() {        return tag;    }    public void setTag(TagBean tag) {        this.tag = tag;    }    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 String getUrl() {        return url;    }    public void setUrl(String url) {        this.url = url;    }    public String getCreateTime() {        return createTime;    }    public void setCreateTime(String datetime) {        this.createTime = datetime;    }    public int getUserid() {        return userid;    }    public void setUserid(int userid) {        this.userid = userid;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    private String username;    public void setDateTime(String datetime) {        // TODO Auto-generated method stub    }}

TagBean.hbm.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.collection.bean">    <class name="TagBean" table="tag">        <id name="id">            <generator class="native"></generator>        </id>        <!-- <property name="colleId" column="colle_id"></property> -->        <property name="name"></property>        <property name="number"></property>        <many-to-one name="collection" column="colle_id" cascade="save-update"></many-to-one>    </class></hibernate-mapping>

TagBean.java

package com.collection.bean;public class TagBean implements java.io.Serializable {    private static final long serialVersionUID = 1L;    private int id;    private String name;    private int number;    private CollectionBean collection;    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 getNumber() {        return number;    }    public void setNumber(int number) {        this.number = number;    }    public CollectionBean getCollection() {        return collection;    }    public void setCollection(CollectionBean collection) {        this.collection = collection;    }}

BaseImpl.java

package com.collection.imlps;import java.io.Serializable;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.query.Query;import com.collection.dao.BaseDao;public class BaseImpl implements BaseDao {    public BaseImpl() {    }    @Override    public int save(Object obj) {         Configuration configuration = new Configuration().configure();            SessionFactory sFactory = configuration.buildSessionFactory();            Session session = sFactory.openSession();            try {                session.save(obj);                return 1;            }catch(HibernateException  e){                e.printStackTrace();            }finally {                session.close();            }            return 0;    }    @Override    public Object get(Class<?> cls, Serializable id) {        Configuration configuration = new Configuration().configure();        SessionFactory sFactory = configuration.buildSessionFactory();        Session session = sFactory.openSession();        try {            return  (Object) session.get(cls, id);        }catch(HibernateException  e){            e.printStackTrace();        } finally {            session.close();        }        return null;    }    @Override    public List<?> list(String hql) {         Configuration configuration = new Configuration().configure();            SessionFactory sFactory = configuration.buildSessionFactory();            Session session = sFactory.openSession();            try {                Query query = session.createQuery(hql);                List list = query.list();                return list;            } catch (HibernateException e) {                e.printStackTrace();            }finally{                session.close();            }            return null;    }    @Override    public int update(Object obj) {         Configuration configuration = new Configuration().configure();            SessionFactory sFactory = configuration.buildSessionFactory();            Session session = sFactory.openSession();            Transaction transaction = session.beginTransaction();            try {                session.update(obj);                transaction.commit();                return 1;            }catch(HibernateException  e){                transaction.rollback();                e.printStackTrace();            }finally {                session.close();            }            return 0;    }    @Override    public void delete(Object obj) {         Configuration configuration = new Configuration().configure();            SessionFactory sFactory = configuration.buildSessionFactory();            Session session = sFactory.openSession();            Transaction transaction = session.beginTransaction();            try {                session.delete(obj);                transaction.commit();            }catch(HibernateException  e){                transaction.rollback();                e.printStackTrace();            } finally {                session.close();            }        }}

CollectionImpl.java

package com.collection.imlps;import java.io.Serializable;import java.util.List;import com.collection.dao.CollectionDao;public class CollectionImpl extends BaseImpl implements CollectionDao {        @Override        public int save(Object colle) {            return super.save(colle);        }        @Override        public List<?> list(String hql) {            return super.list(hql);        }        @Override        public int update(Object colle) {            return super.update(colle);        }        @Override        public void delete(Object colle) {            super.delete(colle);        }        public Object get(Class<?> cls, Serializable id) {            return super.get(cls, id);        }}

CollectionImplTest.java

package com.collection.test;import static org.junit.Assert.*;import java.text.SimpleDateFormat;import java.util.Date;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;import com.collection.bean.CollectionBean;import com.collection.bean.TagBean;import com.collection.imlps.BaseImpl;public class CollectionImplTest {    BaseImpl base;    String datetime;    private CollectionBean colleBean;    @BeforeClass    public static void setUpBeforeClass() throws Exception {    }    @AfterClass    public static void tearDownAfterClass() throws Exception {    }    @Before    public void setUp() throws Exception {        base = new BaseImpl();        colleBean = new CollectionBean();        Date date = new Date();        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        datetime = simpleDateFormat.format(date);    }    @After    public void tearDown() throws Exception {    }    @Test    public void test() {        fail("Not yet implemented");    }    @Test    public void testsave() {        TagBean tagBean = new TagBean();        tagBean.setName("标签");        tagBean.setNumber(1);        colleBean.setCreateTime(datetime);;        colleBean.setDateTime(datetime);        colleBean.setName("我的收藏");        colleBean.setUrl("https://music.douban.com");        colleBean.setTag(tagBean);        colleBean.setUserid(1233);        colleBean.setUsername("username");        tagBean.setCollection(colleBean);        base.save(colleBean);    }    @Test    public  void testget(){         CollectionBean sss = (CollectionBean)base.get(colleBean.getClass(), 48);         System.out.println(sss.getName()+" /// "+sss.getTag().getName());    }}
0 2
原创粉丝点击