Hibernate双向多对多查询方法
来源:互联网 发布:淘宝原单男包店铺推荐 编辑:程序博客网 时间:2024/05/29 09:23
文件:MachineInfo.java 对应 MachineInfo.hbm.xml
public class MachineInfo implements Serializable{ private Integer id; private String machine_id; private String machine_name; private Date machine_makedate; private Set<DeviceUser> deviceusers = new HashSet<DeviceUser>();}
<hibernate-mapping package="COM"><class name="MachineInfo" table="machineinfo_table"><id name="id" type="java.lang.Integer"><column name="Machine_Id" /><generator class="identity" /></id><property name="machine_id" type="java.lang.String"><column name="MachineId" /></property><property name="machine_name" type="java.lang.String"><column name="machine_name" /></property><property name="machine_makedate" type="date"><column name="Machine_Makedate" /></property><set name="deviceusers" table="deviceusers_machine"><key column="Machine_Id" /><many-to-many class="DeviceUser" column="User_Id" /></set></class></hibernate-mapping>
文件:DeviceUser.java 对应 DeviceUser.hbm.xml
public class DeviceUser implements Serializable{private Integer id;private String name;private String sex;private Integer age;private String phone;private String job;private String desc;private Set<MachineInfo> machinelists = new HashSet<MachineInfo>();}
<hibernate-mapping package="COM"><class name="DeviceUser" table="deviceusers_table"><id name="id" type="java.lang.Integer"><column name="User_Id" /><generator class="identity" /></id><property name="name" type="java.lang.String"><column name="User_Name" /></property><property name="sex" type="java.lang.String"><column name="User_Sex" /></property><property name="age" type="java.lang.Integer"><column name="User_Age" /></property><property name="phone" type="java.lang.String"><column name="User_Phone" /></property><property name="job" type="java.lang.String"><column name="User_Job" /></property><property name="desc" type="java.lang.String"><column name="User_Desc" /></property><set name="machinelists" table="deviceusers_machine"><key column="User_Id" /><many-to-many class="MachineInfo" column="Machine_Id" /></set></class></hibernate-mapping>
生成的表有3个,不过查询和表名无关,就不列出表了
下一步,查询一,通过用户名 查询他所管理的设备列表,
String hql2="SELECT m from MachineInfo as m join m.deviceusers r WHERE r.name='de7'"; Query query = session.createQuery(hql2); List<MachineInfo> list = query.list(); for (MachineInfo deviceUser : list) { System.out.println(deviceUser.getMachine_id()); }返回结果可返回所有该用户名下的设备
查询二,通过设备查询所有使用该设备的人
String hql="SELECT p from DeviceUser as p join p.machinelists r WHERE r.machine_id='111'"; Query query = session.createQuery(hql); List<DeviceUser > list = query.list(); for (DeviceUser deviceUser : list) { System.out.println(deviceUser.getname()); }
0 0
- Hibernate双向多对多查询方法
- 【Hibernate】多对多(双向)
- hibernate HQL 分页 关联查询(一对多单向,多对一 双向,多对多)
- hibernate 双向多对一 many-to-one 映射 关联查询
- Hibernate多对多双向关联映射
- Hibernate 多对多双向关联
- hibernate 多对多 双向关联实战
- Hibernate Annotation 多对多 双向 示例
- Hibernate 多对多双向关联
- Hibernate 多对多双向关联
- Hibernate 多对多双向关联
- hibernate多对多双向关联_Annotation
- hibernate多对多双向关联_XML
- Hibernate多对多双向关联
- Hibernate 多对多双向关联
- Hibernate多对多双向关联
- hibernate 多对多双向关联
- hibernate 双向多对多 注解
- linux 提升 文件系统 性能
- nmap
- linux 命令总结
- tcpdump
- CMU Sphinx--Adapting the default acoustic model(部分翻译)
- Hibernate双向多对多查询方法
- 双系统中从Windows访问Linux分区 ext2 ext3 的三种方法
- 雨林木风年薪25万起招Linux C++开发工程师
- 经典推荐之嵌入式系统 Boot Loader 技术内幕(詹荣开)
- Lasso思想及算法
- samba 设置 网络共享
- 使用ImageJ软件计算信噪比(SNR)的小工具
- S5PV210时钟域详解
- MySql中启用InnoDB数据引擎的方法