Hibernate入門教程 Hibernate關(guān)系映射詳解
Hibernate關(guān)系映射是1對1one-to-one。
1對1的關(guān)系在現(xiàn)實中很常見。比方說:人和身份證。1個身份證對應(yīng)著一個身份證,一個身份證對應(yīng)著一個人。那么,我們就以此為原型。進(jìn)行代碼編寫。
建立實體模型如右:
![]() |
useHibernateQuickUse; createtableCard( createtablePerson( |
Java代碼如下:
Person類
packageorg.py.hib.relation.one2one; /** @SuppressWarnings("serial") privateStringname; privateCardcard; publicPerson() publicStringgetId() publicvoidsetId(Stringid) publicCardgetCard() publicvoidsetCard(Cardcard) publicStringgetName() publicvoidsetName(Stringname) } |
Card類:
packageorg.py.hib.relation.one2one; /** @SuppressWarnings("serial") privateStringcardDesc; publicCard() publicStringgetId() publicvoidsetId(Stringid) publicStringgetCardDesc() publicvoidsetCardDesc(StringcardDesc) |
XML映射文件如下:
Person.hbm.xml
|
今天講的是one-to-one配置。但是,此處用的是many-to-one,這個是什么原因呢?其實,one-to-one就是特殊的many-to-one。
Card.hbm.xml:
|
#p#
測試代碼如下:
One2OneTest.java
packageorg.py.hib.relation.one2one; importjunit.framework.Assert; importorg.hibernate.Session; publicclassOne2OneTestextendsTestCase privateStringm_name="ryanpoy"; privateStringm_name2="ryanpoy2"; privateStringm_cardDesc1="desc_1"; privateStringm_cardDesc2="desc_2"; @Before /** Cardcard=newCard(); Personperson=newPerson(); Sessionsession=null; tran.commit(); Assert.assertEquals(person.getId()!=null,true); }catch(Exceptionex) /** Assert.assertEquals(true,person.getId()!=null); Assert.assertEquals(true,person.getCard().getId()!=null); }catch(Exceptionex) /** Personperson=(Person)session.createQuery("fromPerson").list().get(0); }catch(Exceptionex) /* Assert.assertEquals(true,person.getId()!=null); Assert.assertEquals(true,person.getCard().getId()!=null); }catch(Exceptionex) /** Personperson=(Person)session.createQuery("fromPerson").list().get(0); }catch(Exceptionex) /* Integernum=(Integer)session.createQuery("fromPerson").list().size(); num=(Integer)session.createQuery("fromCard").list().size(); }catch(Exceptionex) /** } |
運行test,測試成功.
在Hibernateone-to-one關(guān)系映射中,其實還有一種方式,即:唯一主見關(guān)聯(lián)。但是,我一直傾向于上面的這種形式,所以,唯一主見關(guān)聯(lián)的舊部介紹了。
您正在閱讀: Hibernate入門教程 Hibernate關(guān)系映射詳解【編輯推薦】