hibernate级联关系list的配置使用

最近在练习一个List的级联关系的例子,遇到点问题,现在已经解决,现在把一些配置方法做一个简单的说明,希望对初学者有一定的帮助!

       使用框架:Struts2 + hibernate + spring

 

       Question.java

 

private Integer id;
	private String questionname;
	private List<Item> items;
.......省略GET.SET 方法

       Item.java

 

private Integer id;
	private String itemname;
	private Integer questionid;
	private Integer indexitem;
	private Question question;


.........省略GET.SET 方法

  QUESTION.HBM.XML

 

<hibernate-mapping>
    <class name="org.jiangzhen.domain.Question" table="question" catalog="jilian">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="questionname" type="java.lang.String">
            <column name="questionname" />
        </property>
        
        <list name="items" table="item" cascade="all-delete-orphan" inverse="false" lazy="true">
        <key column="questionid"></key>
        <index column="indexitem"></index>
       <one-to-many class="org.jiangzhen.domain.Item"></one-to-many>
        </list>
        
        </class>

 

item.hbm.xml

<hibernate-mapping>
    <class name="org.jiangzhen.domain.Item" table="item" catalog="jilian">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="itemname" type="java.lang.String">
            <column name="itemname" />
        </property>
       
        <many-to-one name="question" column="questionid" class="org.jiangzhen.domain.Question"></many-to-one>
    </class>
</hibernate-mapping>

 QuestionAction.java

public String add(){
		try{
			
		Question question = new Question();
		question.setQuestionname(questionname);
		question.setItems(items);
	
		this.questionService.addQuestion(question);
		}catch(Exception e)
		{
			e.printStackTrace();
			
		}
		return SUCCESS;
		
		
	}

 add.jsp

	<s:form action="add.action" >
  	<s:textfield name="questionname" label="name"></s:textfield>
  	<s:textfield name="items" label="items"></s:textfield>
  	<s:textfield name="items" label="items"></s:textfield>
  	<s:textfield name="items" label="items"></s:textfield>
  	<s:textfield name="items" label="items"></s:textfield>
  	<s:submit></s:submit>
  	
  	</s:form>

   在这里特别要注意的是: 要在CLASSPATH下建立以个QuestionAction-convertion.properties

items=org.jiangzhen.conversion.ItemConversion

   QuestionAction-convertion.properties

  

public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
		
		  List<Item> list = new ArrayList<Item>();
		  
		  for(String str:arg1){
			  Item item = new Item();
			  item.setItemname(str);
			  list.add(item);
		  }
		return list;
	}

  以上方法是自己测试过的~~! 能正常运行, 如果有其他的好的方法,请互相交流~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值