`

hibernate list null index column for collection

    博客分类:
  • java
阅读更多

把invers="true" 去掉就ok了。不知道怎么回事

package cn.isvi.entity;

import java.util.ArrayList;
import java.util.List;

public class VideoClipMenu implements java.io.Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -4812042737317592088L;
	
	private Integer id;
	private String menuName;
	private VideoClipMenu parentMenu;
	
	private List<VideoClipMenu> children=new ArrayList<VideoClipMenu>();
	
	
	public void addMenu(VideoClipMenu menu){
		children.add(menu);
		menu.parentMenu=this;
	}

	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getMenuName() {
		return menuName;
	}
	public void setMenuName(String menuName) {
		this.menuName = menuName;
	}

	public VideoClipMenu getParentMenu() {
		return parentMenu;
	}
	public void setParentMenu(VideoClipMenu parentMenu) {
		this.parentMenu = parentMenu;
	}
	public List<VideoClipMenu> getChildren() {
		return children;
	}
	public void setChildren(List<VideoClipMenu> children) {
		this.children = children;
	}

	
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    
<hibernate-mapping package="cn.isvi.entity">
   <class name="VideoClipMenu" 
   table="VideoClipMenu">
     <id name="id" column="id">
 		 <generator class="increment">
	 	</generator>
     </id>
     
     <property name="menuName"></property>
    	
      <list name="children" cascade="all" lazy="false"> //把invers="true"去掉
     	<key column="parentId"></key>
     	<list-index column="hello"></list-index>

     	<one-to-many class="cn.isvi.entity.VideoClipMenu"/>
     </list>
    
    
     <many-to-one name="parentMenu" column="parentId"></many-to-one>
   </class>
   
    <!-- 
       <set name="children" 
     	cascade="save-update" lazy="false" inverse="true">
     	<key column="parentId"></key>
     	<one-to-many class="cn.isvi.entity.Menu"/>
     </set>
    
      -->
   <!-- 
   private Integer id;//id
	private String title;//标题
	private String author;//作者
	private String content;//内容
	private Date pubDate;//发布日期
    -->
</hibernate-mapping>
 }

 

package cn.isvi.test;测试

import java.util.List;

import cn.isvi.dao.TemplateDAO;
import cn.isvi.dao.impl.TemplateDAOImpl;
import cn.isvi.entity.VideoClipMenu;

public class VideoClipMenuTest {
	
	public static void main(String args[]){
		TemplateDAO tdao=new TemplateDAOImpl();
//		VideoClipMenu all=new VideoClipMenu();
//		all.setMenuName("1级");
//		
//		VideoClipMenu s1=new VideoClipMenu();
//		s1.setMenuName("2级");
//		
//		all.addMenu(s1);
//	
//		
//		VideoClipMenu s2=new VideoClipMenu();
//		s2.setMenuName("3级");
//		
//		s1.addMenu(s2);
		List<VideoClipMenu> menus=null;
		try {
//			tdao.saveObj(all);
			menus=tdao.selectObjs(VideoClipMenu.class);
			 System.out.println(menus.size());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(VideoClipMenu cm:menus){
			System.out.println(cm.getMenuName());
		}
	
	}
}
 
分享到:
评论
3 楼 yu530416973 2012-04-10  
<list-index column="hello"></list-index> ,column="hello",这个hello表示的是什么,是一张表中的字段吗?
2 楼 fykyx521 2009-11-24  
呵呵
1 楼 xsh5324 2009-11-24  
我也碰到为此异常的错误。
比如:员工(Employee)与部门(Depart)它们是一种多对一的关系,
在查询之前我先调用session.clear()方法清除缓存。
我在查询到员工后仿问其部门的时候报此错误。
解决方法有二种:
一.如楼主所说,将部门这端的invers=true去掉。
二.去掉查询前的session.clear()语句。
。。。。。。
我也弄不清楚这是为什么。如果哪位高手知道的话,麻烦告诉小弟,万分感谢。

相关推荐

    hibernate list集合映射

    &lt;index column="list_index"/&gt; &lt;many-to-many class="Course" column="course_id"/&gt; &lt;/list&gt; ``` 这里的`name`属性指定了集合属性名,`table`是对应的数据库表名,`key`表示外键字段,`index`定义了索引字段,`...

    DmDialect-for-hibernate1-5.zip

    达梦数据DmDialect-for-hibernate所有jar包,DmDialect-for-hibernate2.0、DmDialect-for-hibernate2.1、DmDialect-for-hibernate3.0、DmDialect-for-hibernate3.1、DmDialect-for-hibernate3.6、DmDialect-for-...

    Hibernate中List信息的配置

    在探讨Hibernate中List信息的配置时,我们主要聚焦于如何在ORM(对象关系映射)框架下有效地管理和操作集合类型,尤其是List、Set以及Map。本文将深入解析List与Set在Hibernate中的映射机制,同时也会简要提及Map的...

    DmDialect-for-hibernate4.0.zip

    本篇将详细介绍标题为"DmDialect-for-hibernate4.0.zip"的压缩包文件及其包含的两个重要组件:Dm7JdbcDriver17.jar和DmDialect-for-hibernate4.0.jar,以及它们在SpringBoot项目中的作用。 首先,SpringBoot是一个...

    Hibernate映射集合属性List

    本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate自动创建对应的数据库表,无需手动编写SQL语句。 首先,我们需要理解Hibernate的映射机制。Hibernate通过ORM(对象关系映射)技术将Java对象...

    达梦数据库hibernate方言包

    DmDialect-for-hibernate2.0、DmDialect-for-hibernate2.1、DmDialect-for-hibernate3.0、DmDialect-for-hibernate3.1、DmDialect-for-hibernate3.6、DmDialect-for-hibernate4.0、DmDialect-for-hibernate5.0、...

    Beginning Hibernate: For Hibernate 5

    ### 关于《Beginning Hibernate: For Hibernate 5》的知识点总结 #### Hibernate 5 概述 - **定义**: Hibernate 是一款流行的开源对象关系映射(ORM)框架,它简化了数据库与 Java 对象之间的交互过程。 - **版本**...

    DmDialect-for-hibernate5.3-5.3.jar

    国产达梦数据库hibernate方言包

    Oracle中(column1,column2..)in(集合/子查询)的hibernate实现

    总的来说,这篇文章可能会深入探讨如何使用Hibernate的Criteria API来构建多列`IN`查询,包括与子查询的结合,以及如何处理可能存在的`NULL`值问题。这对于理解和优化Hibernate的查询性能至关重要,特别是在处理大...

    hibernate的lazy策略forClass

    在这个场景中,我们关注的是"hibernate的lazy策略forClass",这涉及到如何对类的属性进行懒加载配置。 首先,我们需要理解Hibernate中的实体类(Entity)。在Hibernate中,一个Java类可以被映射为数据库中的一个表...

    hibernate 一对多 set 与 list 分别用法

    &lt;index column="index_column"/&gt; &lt;/list&gt; &lt;!--增加一个序列字段用于维护顺序--&gt; ``` `EntityB`的代码中添加`@OrderColumn`注解: ```java public class EntityB { @ManyToOne @JoinColumn(name = "entity_a...

    Hibernate乐观锁和悲观锁分析

    2. 在`hibernate.cfg.xml`或`entity.hbm.xml`中,紧随`id`标签后声明`&lt;version&gt;`标签,指定版本字段,如`&lt;version column="version" name="version" type="integer"/&gt;`。 3. 为了安全,Java类中的`version`属性的...

    Hibernate_Tools_for_Eclipse插件的安装和使用

    Hibernate_Tools_for_Eclipse插件的安装和使用 Hibernate_Tools_for_Eclipse插件是 Eclipse 中的一个插件,用于支持 Hibernate 开发。它提供了许多有用的功能,如Hibernate配置文件的创建、实体类的生成、SQL语句...

    Hibernate在查询条件中创建List集合

    本文将深入探讨如何在Hibernate中利用查询条件创建List集合,这在处理复杂的数据筛选和聚合时尤其有用。 首先,让我们理解在Hibernate中创建List集合的基本概念。List集合是Java集合框架的一部分,它可以存储有序且...

    HIBERNATE - Relational Persistence for Idiomatic Java

    "Relational Persistence for Idiomatic Java"这个标题表明Hibernate的核心功能是为Java程序员提供一种自然、地道的方式来处理关系型数据库的持久化。下面将详细阐述Hibernate的主要概念、API及其在Java开发中的应用...

    Hibernate Tools For Eclipse Plugins

    Hibernate Tools is a toolset for Hibernate implemented as an integrated suite of Eclipse plugins, together with a unified Ant task for integration into the build cycle. Hibernate Tools is a core ...

    HIBERNATE - Relational Persistence for Idiomatic Java.chm

    从hibernate官网上 下载的HIBERNATE - Relational Persistence for Idiomatic Java.chm

    hibernate for netbeans 6.1

    《Hibernate for NetBeans 6.1:框架集成与开发指南》 在Java开发领域,Hibernate作为一款优秀的对象关系映射(ORM)框架,极大地简化了数据库操作。而NetBeans作为一个功能强大的集成开发环境(IDE),为开发者...

    Hibernate教程24_Hibernate的补充_list与iterator

    【标题】"Hibernate教程24_Hibernate的补充_list与iterator" 在Java开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,极大地简化了数据库操作。本教程将重点讲解在使用Hibernate时,如何处理查询结果集合...

    Hibernate Tools for Eclipse Plugins 的安装和使用

    【Hibernate Tools for Eclipse Plugins】是Eclipse集成开发环境中用于支持Hibernate框架的一组插件,它提供了许多方便开发者的功能,如代码生成、配置文件编辑、逆向工程等。这些工具极大地简化了Hibernate应用的...

Global site tag (gtag.js) - Google Analytics