from MenuGroup mg
left join fetch mg.menuNodes mns
join mns.enterpriseDepartments eds
where mg.id=mns.menuGroup and eds.id = ?
from MenuGroup mg left join fetch mg.menuNodes mns 这句参见我的另外一个日志
多对多采用
join(left join fetch) ,并且不用id直连
实体关系如下(只写出关键的代码了,呵呵):
MenuGroup 与 MenuNode 一对多
MenuNode 与 EnterpriseDepartment 多对多(单向关系)
@Entity
@Table(name = "PERMISSION_MENU_GROUP")
public class MenuGroup implements AccessPermission,IntOrderable{
/**菜单所包含的菜单节点*/
private List<MenuNode> menuNodes = new ArrayList<MenuNode>();
@OneToMany(mappedBy="menuGroup")
@LazyCollection(LazyCollectionOption.FALSE)
public List<MenuNode> getMenuNodes() {
return menuNodes;
}
//略
}
@Entity
@Table(name = "PERMISSION_MENU_NODE")
public class MenuNode implements AccessPermission,IntOrderable{
/**企业会员部门*/
private List<EnterpriseDept> enterpriseDepartments=new ArrayList<EnterpriseDept>();
/**菜单所在组*/
private MenuGroup menuGroup;
@ManyToMany
@JoinTable(
name = "PERMISSION_MENUNODE_ENTER_DEPT",
joinColumns = {
@JoinColumn(name = "MENU_NODE_ID")
},
inverseJoinColumns = {
@JoinColumn(name = "ENTERPRISE_DEPARTMENT_ID")
})
@LazyCollection(LazyCollectionOption.FALSE)
public List<EnterpriseDept> getEnterpriseDepartments() {
return enterpriseDepartments;
}
@ManyToOne
@JoinColumn(name = "MENU_GROUP_ID",nullable=false)
public MenuGroup getMenuGroup() {
return menuGroup;
}
//略
}
@Entity
@Table(name = "ENTERPRISE_DEPT")
public class EnterpriseDept extends BasicDept{
//略
}
@MappedSuperclass
public abstract class BasicDept implements java.io.Serializable, ValueObject<BasicDept>,Identityable{
protected String id;
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
//略
}
分享到:
相关推荐
和JDBC比较一下,同样都是数据库中间件(DM,Database Middleware),JDBC利用SQL语言操作的是数据,而Hibernate则是利用自己的查询语言Hibernate Query Language(HQL虽然底层还是要转换成sql语言)操作的是持久化对象...
hibernate一对一主键关联映射(双向关联Person<---->IdCard) 9 hibernate一对一唯一外键关联映射(单向关联Person---->IdCard) 10 hibernate一对一唯一外键关联映射(双向关联Person<---->IdCard) 11 session ...
Hadoop-2.8.0-Day08-Hive函数与HQL详解-课件与资料.zip
瀚强HQL75D-2SA 480电源原理图.pdf
List<User> lists=hibernateTemplate.find(hql); return lists; } } package com.org.core.action; import java.util.List; import javax.annotation.Resource; import javax.servlet....
Hibernate HQL 查询 Query 资料 3个word总结的资料。
MLDN框架笔记大全<br>JSP+JDBC_假分页 <br>02 JSP+JDBC_真分页(基于MySQL数据库分页)...试学下载 <br>12 Struts + DAO分页 <br>13 Hibernate入门(上) <br>14 Hibernate入门(下) <br>15 Hibernate数据检索(HQL) 试学下载
Spring中常用的HQL查询方法,用户可以从里面学到在spring中学习hql
NULL 博文链接:https://awfrun.iteye.com/blog/690632
O/R Mapping基础<br>5.1. 映射声明(Mapping declaration)<br>5.1.1. Doctype<br>5.1.2. hibernate-mapping<br>5.1.3. class<br>5.1.4. id<br>5.1.4.1. generator<br>5.1.4.2. 高/低位算法(Hi/Lo Algorithm)<br>...
O/R Mapping基础<br>5.1. 映射声明(Mapping declaration)<br>5.1.1. Doctype<br>5.1.2. hibernate-mapping<br>5.1.3. class<br>5.1.4. id<br>5.1.4.1. generator<br>5.1.4.2. 高/低位算法(Hi/Lo Algorithm)<br>...
Hadoop-2.8.0-Day07-HA-Hive安装部署与HQL-课件与资料.zip
pact-jvm.zip,pact模型
HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL...
sbt-junit.zip,面向junit的sbt测试接口的sbt-junitan实现
<param name="property ">emp</param> </generator> </id> <one-to-one name="emp" class="Employees" fetch="join" constrained="true" cascade="save-update" > </one-to-one> <property name=...
hibernate-HQL语句大全
hibernate查询语句--HQL hibernate查询语句--HQL
NSQL和HQL的简单操作
HQL语句 HQL语句 HQL语句 HQL语句 HQL语句