hibernate 3表以上 多对多 双向关联关系 首先你看下你的数据库连接对着没 看下SQLServer2000的架包导进来了没 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 could not initialize a collection: [cn.ncsimvpq.user.domain.User.role#ABCDEFGHIJKLMZYXWVUTSRQPON0123456782]; role的映射有问题改为private Set role ;看看 权限这里一般来说都是用用户表,角色表,资源表来分别和2张中间表映射,形成one-to-many的关系,而且为什么要双向关联?就不怕一个数据删不好,几张表相关的数据都没了吗? 这个你放心,数据库连接这些基本的东西我还是会的,开始的时候,没有在hibernate的mapping中设置这种关联关系,纯粹是在代码中做这种逻辑的,获取一条信息后,根据其中的关联id字段再去查找其他的信息,都没有问题,但是这样做,代码就太复杂了 有的呀,多对多的关联当然要使用额外的表结构了呀,可能是我这里没有明却的单独提出,你没看到罢了,两个关联表是:emcl_user_role,emcl_role_permission;基本表是:user、role、permission SQLServer 2000 Driver for JDBC]Value can not be converted to requested type数据回来的时候有不识别的类型你看看你的配置文件多对多的时候是否写错类型从你帖上来文件我没看出问题我在看看 恩,我现在只能全都改成set了,网上好多资料也都是set做的,list都没有,用set我试过了,没问题 我把所有的List都改成Set了,这样是对了,可是谁能跟我说下多对多中,List和Set的区别呢,配置的时候哪里要注意,因为我感觉二者差不多啊 javaEye里面有人说,他的java文件中用的是private List XXX,然后在配置中写的是set ,我有点头大了 我从来都是用的SET,没用过LIST,SET取出来无重复数据请问楼主能说明下<index column="id"> </index> 的含义吗我只知道<list-index>这个 额看书和资料是这么写的,因为list要一个索引,所以要这个index,但是感觉和你那个很像的么 连接数据库都还没连上吧看看你的驱动包sql2000要打补丁 hello各位,问题解决了,先把代码发上来,java文件不变,还是list类型,但是配置文件改了,所以只发配置文件user.hbm.xml<bag name="role" table="emcl_user_role" inverse="true" cascade="all" lazy="false"> <key column="user_id"></key> <many-to-many class="cn.ncsimvpq.role.domain.Role" column="role_id"/></bag>role.hbm.xml<bag name="user" table="emcl_user_role" lazy="false"> <key column="role_id"></key> <many-to-many class="cn.ncsimvpq.user.domain.User" column="user_id"/></bag><bag name="permission" table="emcl_role_permission" inverse="true" cascade="all" lazy="false"> <key column="role_id"></key> <many-to-many class="cn.ncsimvpq.permission.domain.Permission" column="permission_id"/></bag>permission.hbm.xml<bag name="role" table="emcl_role_permission" lazy="false"> <key column="permission_id"></key> <many-to-many class="cn.ncsimvpq.role.domain.Role" column="role_id"/></bag>解释:映射文件中用Bag类型,在实体类中是可以对应List的。 对于List(Bag映射),可以指定order-by排序字段,并不需要index列。 就是说,hibernate映射文件中的list类型,不是实体类中的List类型,因此当我们在java文件中配置List类型的变量时,在hibernate映射文件中实际上应该对应Bag映射。但是hibernate自己在映射文件中又有一个list(注意,小写的list)的元素,导致我们以为二者是对应的,这是错误的,不存在这样的对应关系。参考资料:http://www.javaeye.com/topic/70414?page=1重点是看第二页,从一个叫“robbin ”的人开始,到第二页结尾,受益匪浅 呵呵,楼主很厚道,学习了!知道有BAG,却一直没用过。。 在做一对多单向关联的时候,我在mapping中用的是list,没有问题,但是多对多双向的时候,确有问题,扩展下说,谁能解释下,hibernate中所有的映射类型,除了list、set、bag我们经常接触到的,mapping中其实还有很多其他的类型,要学习hibernate,配置很重要,还望高人指教,或者解释,或者提供相关文章链接,先谢过了! http://blog.sina.com.cn/s/blog_5a67fbaa0100cq5b.html这个你参考 comcat启动文件的问题,在线等 Java把文件打成包tar包!网上试了好几种方法,都不支持中文,求解啊! web加载Spring框架及其参数配置文件的问题! 自认为xfire+Spring技术到位的进 JSP乱码,我用的是jsp+mysql+tomcat getBytes乱码问题 请问JSP自定义标签的问题 给个例子 请问哪里有深入浅出hibernate电子版下载,谢谢各位大侠了 如何在jsp中写html的语言 jsp页面怎样实现分页? 不好意思 `求个一个题目
role的映射有问题
改为
private Set role ;看看
有的呀,多对多的关联当然要使用额外的表结构了呀,可能是我这里没有明却的单独提出,你没看到罢了,
两个关联表是:emcl_user_role,emcl_role_permission;基本表是:user、role、permission
你看看你的配置文件多对多的时候是否写错类型
从你帖上来文件我没看出问题
我在看看
SET取出来无重复数据
请问楼主能说明下<index column="id"> </index>
的含义吗
我只知道<list-index>这个
看看你的驱动包
sql2000要打补丁
table="emcl_user_role"
inverse="true"
cascade="all"
lazy="false">
<key column="user_id"></key>
<many-to-many class="cn.ncsimvpq.role.domain.Role" column="role_id"/>
</bag>role.hbm.xml<bag name="user"
table="emcl_user_role"
lazy="false">
<key column="role_id"></key>
<many-to-many class="cn.ncsimvpq.user.domain.User" column="user_id"/>
</bag>
<bag name="permission"
table="emcl_role_permission"
inverse="true"
cascade="all"
lazy="false">
<key column="role_id"></key>
<many-to-many class="cn.ncsimvpq.permission.domain.Permission" column="permission_id"/>
</bag>permission.hbm.xml<bag name="role"
table="emcl_role_permission"
lazy="false">
<key column="permission_id"></key>
<many-to-many class="cn.ncsimvpq.role.domain.Role" column="role_id"/>
</bag>解释:
映射文件中用Bag类型,在实体类中是可以对应List的。
对于List(Bag映射),可以指定order-by排序字段,并不需要index列。 就是说,hibernate映射文件中的list类型,不是实体类中的List类型,因此当我们在java文件中配置List类型的变量时,在hibernate映射文件中实际上应该对应Bag映射。但是hibernate自己在映射文件中又有一个list(注意,小写的list)的元素,导致我们以为二者是对应的,这是错误的,不存在这样的对应关系。参考资料:http://www.javaeye.com/topic/70414?page=1
重点是看第二页,从一个叫“robbin ”的人开始,到第二页结尾,受益匪浅
知道有BAG,却一直没用过。。
这个你参考