最近在练习一个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;
}
以上方法是自己测试过的~~! 能正常运行, 如果有其他的好的方法,请互相交流~~