hibernate\ many to many \one to one\Iterator\\Set

本文介绍了一个使用Hibernate进行实体关联映射的例子,包括一对多和多对一的关系映射方式。通过具体的Java类和XML配置文件,展示了如何实现父类Iaitem与子类Iasubitem之间的关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vo包

Iaitem.java

  1. importjava.util.Set;
  2. /**
  3. *@author
  4. *@version创建时间:Jan2,200911:42:16AM
  5. *类说明
  6. */
  7. publicclassIaitem{
  8. privateintitemid;
  9. privateStringitemname;
  10. privateintitemcode;
  11. //代表全部的子栏目
  12. privateSetiasubitems;
  13. publicintgetItemid(){
  14. returnitemid;
  15. }
  16. publicvoidsetItemid(intitemid){
  17. this.itemid=itemid;
  18. }
  19. publicStringgetItemname(){
  20. returnitemname;
  21. }
  22. publicvoidsetItemname(Stringitemname){
  23. this.itemname=itemname;
  24. }
  25. publicintgetItemcode(){
  26. returnitemcode;
  27. }
  28. publicvoidsetItemcode(intitemcode){
  29. this.itemcode=itemcode;
  30. }
  31. //
  32. publicSetgetIasubitems(){
  33. returniasubitems;
  34. }
  35. //
  36. publicvoidsetIasubitems(Setiasubitems){
  37. this.iasubitems=iasubitems;
  38. }
  39. }

Iaitem.hbm.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. MappingfileautogeneratedbyMyEclipsePersistenceTools
  6. -->
  7. <hibernate-mapping>
  8. <classname="com.123.mgzst.vo.Iaitem"table="IAITEM"schema="STMG">
  9. <idname="itemid"type="java.lang.Integer">
  10. <columnname="ITEMID"precision="22"/>
  11. <generatorclass="sequence">
  12. <paramname="sequence">STMG.item_id_seq</param><!-- seq--> <!-- native--> <!-- native-->
  13. </generator>
  14. </id>
  15. <propertyname="itemname"type="java.lang.String">
  16. <columnname="ITEMNAME"length="50"/>
  17. </property>
  18. <propertyname="itemcode"type="java.lang.Integer">
  19. <columnname="ITEMCODE"precision="22"/>
  20. </property>
  21. <!-- set-->
  22. <setname="iasubitems"inverse="true"cascade="all"table="IASUBITEM">
  23. <key>
  24. <columnname="ITEMID"precision="22"/>
  25. </key>
  26. <one-to-manyclass="com.123.mgzst.vo.Iasubitem"/><!-- one to many-->
  27. </set>
  28. </class>
  29. </hibernate-mapping>

Iasubitem.java

  1. publicclassIasubitem{
  2. privateintsubid;
  3. privateStringsubname;
  4. privateintitemid;
  5. privateintsubcode;
  6. privateIaitemiaitem;
  7. publicintgetSubid(){
  8. returnsubid;
  9. }
  10. publicvoidsetSubid(intsubid){
  11. this.subid=subid;
  12. }
  13. publicStringgetSubname(){
  14. returnsubname;
  15. }
  16. publicvoidsetSubname(Stringsubname){
  17. this.subname=subname;
  18. }
  19. publicintgetItemid(){
  20. returnitemid;
  21. }
  22. publicvoidsetItemid(intitemid){
  23. this.itemid=itemid;
  24. }
  25. publicintgetSubcode(){
  26. returnsubcode;
  27. }
  28. publicvoidsetSubcode(intsubcode){
  29. this.subcode=subcode;
  30. }
  31. publicIaitemgetIaitem(){
  32. returniaitem;
  33. }
  34. publicvoidsetIaitem(Iaitemiaitem){
  35. this.iaitem=iaitem;
  36. }
  37. }

Iasubitem.hbm.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. MappingfileautogeneratedbyMyEclipsePersistenceTools
  6. -->
  7. <hibernate-mapping>
  8. <classname="com.123.mgzst.vo.Iasubitem"table="IASUBITEM"schema="STMG">
  9. <idname="subid"type="java.lang.Integer">
  10. <columnname="SUBID"precision="22"/>
  11. <generatorclass="sequence">
  12. <paramname="sequence">STMG.subitem_id_seq</param>
  13. </generator>
  14. </id>
  15. <!-- many to one-->
  16. <many-to-onename="iaitem"class="com.123.mgzst.vo.Iaitem"fetch="select">
  17. <columnname="ITEMID"precision="22"/>
  18. </many-to-one>
  19. <propertyname="subname"type="java.lang.String">
  20. <columnname="SUBNAME"length="50"/>
  21. </property>
  22. <propertyname="subcode"type="java.lang.Integer">
  23. <columnname="SUBCODE"precision="22"/>
  24. </property>
  25. </class>
  26. </hibernate-mapping>

dao

IItemDAOImpl.java

  1. publicclassIItemDAOImplextendsHibernateDaoSupportimplementsIItemDAO{
  2. publicListqueryAll()throwsException{
  3. //TODOAuto-generatedmethodstub
  4. Stringhql="FROMIaitemASi";
  5. Listall=super.getSession().createQuery(hql).list();
  6. returnall;
  7. }
  8. }

action

ItemAction.java

  1. publicclassItemActionextendsDispatchAction{
  2. privateIItemDAOiitemdao;
  3. /*
  4. *GeneratedMethods
  5. */
  6. /**
  7. *Methodexecute
  8. *@parammapping
  9. *@paramform
  10. *@paramrequest
  11. *@paramresponse
  12. *@returnActionForward
  13. */
  14. publicActionForwardselectall(ActionMappingmapping,ActionFormform,
  15. HttpServletRequestrequest,HttpServletResponseresponse){
  16. ItemFormitemForm=(ItemForm)form;//TODOAuto-generatedmethodstub
  17. Listall=null;
  18. try{
  19. all=this.iitemdao.queryAll();
  20. //Iterator
  21. Iteratoriter=all.iterator(); //all是一个List
  22. while(iter.hasNext()){
  23. Iaitemitem=(Iaitem)iter.next();
  24. System.out.println(item.getItemname());
  25. Iteratorit=item.getIasubitems().iterator(); /item.getIasubitems()
  26. while(it.hasNext()){
  27. Iasubitemsi=(Iasubitem)it.next();
  28. System.out.println("|-"+si.getSubname());
  29. }
  30. }
  31. }catch(Exceptione){
  32. //TODOAuto-generatedcatchblock
  33. e.printStackTrace();
  34. }
  35. request.setAttribute("all",all);
  36. returnmapping.findForward("question");
  37. }

jsp

  1. <logic:iterateid="item"scope="request"name="all">
  2. ${item.itemname}<br>
  3. <logic:iterateid="subitem"name="item"property="iasubitems">
  4. |-${subitem.subname}<br>
  5. </logic:iterate>
  6. </logic:iterate>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值