`
coolworm
  • 浏览: 44223 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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;
	}

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

分享到:
评论

相关推荐

    Hibernate级联操作一对多demo

    在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...

    Hibernate_级联关系说明_-_关于cascade和inverse的用法

    在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...

    hibernate3.2级联关系自身一对多双向关联

    在Hibernate 3.2版本中,级联关系是处理对象间关联的重要特性,特别是自身一对多双向关联,这允许一个实体类实例与多个相同类型的其他实例相关联,而且这种关联是双向的。现在,让我们深入探讨这个主题。 首先,...

    hibernate的应用表之间的级联关系

    总结,理解并正确使用Hibernate的级联关系可以极大地提高开发效率,同时确保数据的完整性和一致性。然而,它也需要开发者具备良好的数据库设计和事务管理能力,以避免潜在的问题。通过深入学习和实践,我们可以更好...

    Hibernate_关联关系映射配置

    在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本教程将详细讲解Hibernate中的关联关系映射配置,帮助你理解和掌握如何...

    hibernate各种常用关联关系的基本配置

    总结来说,Hibernate的关联关系配置涵盖了从一对一到多对多的各种情况,提供了丰富的选项来满足不同业务需求。理解并熟练掌握这些关联关系及其配置,能帮助开发者更高效地进行数据操作,提升开发效率。在实际应用中...

    hibernate list集合映射

    1. **XML配置**:在Hibernate的映射文件(.hbm.xml)中,使用`&lt;list&gt;`标签定义List集合映射。例如: ```xml &lt;list name="courses" table="course_student" inverse="true"&gt; &lt;index column="list_index"/&gt; &lt;/...

    hibernate关联关系总结

    本篇将深入探讨Hibernate的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),并结合实例来阐述每种关系的配置和使用。 1. **一对一关联(OneToOne)** 一...

    Hibernate映射集合属性List

    如果不使用注解,我们可以在`hibernate.cfg.xml`中配置实体类和数据库表的关系,然后在实体类的`.hbm.xml`文件中定义集合属性的映射。例如,`User.hbm.xml`可能包含以下内容: ```xml &lt;!-- 其他属性映射 --&gt; ...

    hibernate对应关系详解

    9. **集合类型映射**:Hibernate支持List、Set、Map等多种集合类型,每种类型的映射方式略有不同,如List使用`@ListIndex`指定索引字段,Set使用`@OrderBy`指定排序规则,Map使用`@MapKey`指定键的映射。 在实际...

    ssh中将含有级联对象的list转化为json

    在SSH(Spring、Struts2、Hibernate)框架中,开发Web应用时经常需要与前端进行数据交互。EasyUI是一款基于jQuery的UI库,用于构建现代、互动的用户界面。在处理数据展示时,我们可能需要将后端Java对象转换为JSON...

    Hibernate 关联关系解除

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库。本文将深入探讨Hibernate中的关联关系解除,包括一对多、多对一、一对一以及多对多关系的解除,...

    hibernate 关系注解

    Hibernate是一种流行的Java持久化框架,它允许开发人员将对象模型转换为关系数据库模型。...同时,合理使用级联操作(如`CascadeType.ALL`)可以简化数据操作,自动管理对象的状态和数据库的更新。

    JSON--List集合转换成JSON对象详解

    文中提到,直接使用fromObject(list)方法在Hibernate级联操作关联的对象上会报错,如果需要保留级联操作,就必须去掉映射文件中的级联配置。这是因为在进行JSON序列化时,Hibernate的关联关系可能会导致异常。 4. ...

    hibernate关联关系映射

    总结,Hibernate的关联关系映射是其强大的功能之一,通过合理的配置,我们可以轻松地在Java对象和数据库表之间建立复杂的关系,实现对象的持久化。理解并熟练运用这些映射方式,对于提升Java应用的数据管理效率至关...

    hibernate的多种映射关系

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,消除了直接编写 SQL 的需要。在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系...

    hibernate关联关系实例

    Hibernate是Java领域中的一款强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,大大简化了数据库编程。在这个“hibernate关联关系实例”中,我们将深入探讨四种基本的关联关系:一对一...

    Hibernate3.1_学习源码

    01 01Hibernate_Handwork : 手工配置使用Hibernate,其中详细标了Hibernate进行持久化的一些过程,因为是Hibernate的入门实例,所以注释很详细,其中有session的关闭后重建问题。 02 02Hibernate_UseMyEclipse: 利用...

    Spring+Hibernate一对多关联映射---部门与员工表的级联添加

    在Hibernate中,这种关系可以通过配置XML映射文件或使用注解来实现。我们将以XML映射为例,探讨如何设置一对多关联,并进行级联添加操作。 首先,我们需要定义实体类。"Department"代表部门,"Employee"代表员工。...

    hibernate对象关系映射案例demo

    这只是一个起点,深入学习Hibernate,还可以掌握更多的高级特性,如懒加载、级联操作、多对一、一对多、多对多关系映射等。在实际项目中,理解并熟练运用Hibernate,可以显著提升开发效率,降低项目维护成本。

Global site tag (gtag.js) - Google Analytics