Hibernate三重关联+多值问题。

问题描述

有这样三个类:Resource(资源),Attribute(属性),Spec(词条)。他们的关系是一个资源的一个属性是一个或多个词条的集合。Resource有个属性是privateMap<Attribute,Set<Spec>>specs=newHashMap<Attribute,Set<Spec>>();数据表有resouce表,attribute表,和spec表还有一个关联表用resouce_id,attribute_id,spec_id做联合主键。请问这样的结构如何用Hibernate映射?一般的三重关联这么写:<classname="Resource"><idname="id"><generatorclass="identity"></generator></id><propertyname="name"></property><mapname="specs"><keycolumn="resource_id"/><map-key-many-to-manycolumn="attribute_id"class="Attribute"/><many-to-manycolumn="spec_id"class="Spec"/></map></class>但这样写只能实现一个resouce的一个attribute是一个spec。没法实现多个spec的集合。用Hibernate生成的关联表也是resouce_id,attribute_id复合主键,而不是三个组成的复合主键。有没有解决方案?

时间: 2024-12-24 00:48:28

Hibernate三重关联+多值问题。的相关文章

关于hibernate g关联问题

问题描述 关于hibernate g关联问题 我有 一张 用户表user (user_Id user_nameuser_type) 还有张客户表customer(customer_iduesr_idcustomer_name)其中 user表的user_id是主键自增长,customer表里面customer_id是主键自增长,user_id是外键关联user表的user_id.user_type值为1的时候登陆会进入客户界面也就是customer表 我登陆的时候 输入用户名密码 session

java-Java Hibernate中查询取值

问题描述 Java Hibernate中查询取值 Sql语法是这样的:![图片说明] 用Hibernate查询的语法不知道有没有问题呢? 还有最后一个问题: 我查询后的值存在query里面了, 我又要怎么取值呢? 求大家帮帮忙 解决方案 你那ID写里面就是死值了,要么用"?"代替,要么用 "+ +" 抱起来,哪有你那么写的 解决方案二: query.list()吧,然后看返回值是什么类型就用什么类型去接收就OK了.推荐看看这个先,里面有你想要的内容:http://z

hibernate映射关联?

问题描述 在hibernate映射文件中有段这样的一对多的映射<setname="question"><keycolumn="userId"/><one-to-manyclass="com.pwp.models.Question"></set><setname="topic"><keycolumn=userId"/><one-to-many

hibernate自关联问题

问题描述 比如我要定义一个用户实体,如User.在这个用户实体里面,我想要定义用户的好友.黑名单和关注对象.于是我用了Set<User>的方式,然后在配置文件中使用了<Set>的配置,Set内使用many-to-many方式.我的目的就是让User自关联对多对,生成一个中间表,如User_friends.这样一来在运行的时候没问题,能生成所有预想的表,且能插入数据到User_INFO(User对应的表)中,但无论如何都不能将数据写入到对多对的关联表中.请高手们赐教,感谢不尽. pa

struts2+hibernate页面传属性值保存问题

问题描述 有2张表A表字段id,name,age,deptidB表字段id,address,deptid两张表deptid有外键关联映射类为A表类包含一个B表类的实例请问下,在这样的情况下我想保存A类的数据到表中怎么用struts收集表单中deptid的数据我先用name=A.B.deptid文本框收集数据但在后台ACTION中不能保存数据报错好像说是不能同步数据库.谢谢!

hibernate的关联与单独Sql的效率问题

问题描述 我想请教下各位前辈: 在用hibernate的一对多,多对一时,与单独写sql语句进行对表的操作,那种效率更高,当然我们假象sql是很优化的语句甚至是调用存储过程,那一种更好,为什么?拜赐教 解决方案 个人相信 SQL 效率更高!原因:Hibernate HQL 用起来是很爽!但是是基于sql的 !sql才是真理!(现在还有NOsql 等没关系的数据库也有很多人使用了)hibernate 他封装,包装了SQL 使程序员使用起来更好理解更好使用了!同时也会带来其他问题!面向对象了嘛!存储

hibernate 的关联查询hql怎么写

问题描述 比如我两个表 Person 和 IDCard 是一对一的关系.我想写一条hql,查询在IDCard存在Person对象的记录.该怎么写?from Person p where p.iDCard <> null 这个行不通 解决方案 from Person p where p.iDCard is not null

Hibernate 如何实现查询表与字典表关联

问题描述 员工信息表(Employee)中存的"机构","部门""职位"字段是存的代码.另外三张字典表存的是代码对应的名字.请问用Hibernate 如何关联这三张字典表,查询出机构,部门,职位对应的名字?并且不用再新建一个类,查询出来的值,直接赋到员工信息表对象中.Employee表结构:id,name,institution,department,position字典表:institution_dict表结构:id,namedepartmen

Java的Hibernate框架中一对多的单向和双向关联映射_java

一.一对多单向关联映射 一对多关系的对象模型在日常生活中也经常看到,就拿学生和班级来说,一个班级里有多个学生,所以班级和学生的关系是一对多的关系,映射到对象模型中,如下图: 对象模型说明了这种一对多的关系是由一的一端来维护的,那么映射成关系模型就是一个班级字段下面会有多个学生,这样就形成了一对多的关系,通过班级能够查询获得学生信息,对应的关系模型如下图: 1.基本配置 有了对象模型接下来就让它们映射为对应的关系代码,在进行关系映射时需要在一的一端添加<one-to-many>标签,另外还需要在