最近在练习一个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;
}
以上方法是自己测试过的~~! 能正常运行, 如果有其他的好的方法,请互相交流~~
分享到:
相关推荐
在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...
在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...
在Hibernate 3.2版本中,级联关系是处理对象间关联的重要特性,特别是自身一对多双向关联,这允许一个实体类实例与多个相同类型的其他实例相关联,而且这种关联是双向的。现在,让我们深入探讨这个主题。 首先,...
总结,理解并正确使用Hibernate的级联关系可以极大地提高开发效率,同时确保数据的完整性和一致性。然而,它也需要开发者具备良好的数据库设计和事务管理能力,以避免潜在的问题。通过深入学习和实践,我们可以更好...
在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本教程将详细讲解Hibernate中的关联关系映射配置,帮助你理解和掌握如何...
总结来说,Hibernate的关联关系配置涵盖了从一对一到多对多的各种情况,提供了丰富的选项来满足不同业务需求。理解并熟练掌握这些关联关系及其配置,能帮助开发者更高效地进行数据操作,提升开发效率。在实际应用中...
1. **XML配置**:在Hibernate的映射文件(.hbm.xml)中,使用`<list>`标签定义List集合映射。例如: ```xml <list name="courses" table="course_student" inverse="true"> <index column="list_index"/> </...
本篇将深入探讨Hibernate的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),并结合实例来阐述每种关系的配置和使用。 1. **一对一关联(OneToOne)** 一...
如果不使用注解,我们可以在`hibernate.cfg.xml`中配置实体类和数据库表的关系,然后在实体类的`.hbm.xml`文件中定义集合属性的映射。例如,`User.hbm.xml`可能包含以下内容: ```xml <!-- 其他属性映射 --> ...
9. **集合类型映射**:Hibernate支持List、Set、Map等多种集合类型,每种类型的映射方式略有不同,如List使用`@ListIndex`指定索引字段,Set使用`@OrderBy`指定排序规则,Map使用`@MapKey`指定键的映射。 在实际...
文中提到,直接使用fromObject(list)方法在Hibernate级联操作关联的对象上会报错,如果需要保留级联操作,就必须去掉映射文件中的级联配置。这是因为在进行JSON序列化时,Hibernate的关联关系可能会导致异常。 4. ...
在SSH(Spring、Struts2、Hibernate)框架中,开发Web应用时经常需要与前端进行数据交互。EasyUI是一款基于jQuery的UI库,用于构建现代、互动的用户界面。在处理数据展示时,我们可能需要将后端Java对象转换为JSON...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库。本文将深入探讨Hibernate中的关联关系解除,包括一对多、多对一、一对一以及多对多关系的解除,...
Hibernate是一种流行的Java持久化框架,它允许开发人员将对象模型转换为关系数据库模型。...同时,合理使用级联操作(如`CascadeType.ALL`)可以简化数据操作,自动管理对象的状态和数据库的更新。
总结,Hibernate的关联关系映射是其强大的功能之一,通过合理的配置,我们可以轻松地在Java对象和数据库表之间建立复杂的关系,实现对象的持久化。理解并熟练运用这些映射方式,对于提升Java应用的数据管理效率至关...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,消除了直接编写 SQL 的需要。在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系...
Hibernate是Java领域中的一款强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,大大简化了数据库编程。在这个“hibernate关联关系实例”中,我们将深入探讨四种基本的关联关系:一对一...
01 01Hibernate_Handwork : 手工配置使用Hibernate,其中详细标了Hibernate进行持久化的一些过程,因为是Hibernate的入门实例,所以注释很详细,其中有session的关闭后重建问题。 02 02Hibernate_UseMyEclipse: 利用...
在Hibernate中,这种关系可以通过配置XML映射文件或使用注解来实现。我们将以XML映射为例,探讨如何设置一对多关联,并进行级联添加操作。 首先,我们需要定义实体类。"Department"代表部门,"Employee"代表员工。...
这只是一个起点,深入学习Hibernate,还可以掌握更多的高级特性,如懒加载、级联操作、多对一、一对多、多对多关系映射等。在实际项目中,理解并熟练运用Hibernate,可以显著提升开发效率,降低项目维护成本。