`

HQL o->m & m<-->n

阅读更多
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;
    }

    //略
}

分享到:
评论

相关推荐

    MyEclipse中hibernate的配置

    和JDBC比较一下,同样都是数据库中间件(DM,Database Middleware),JDBC利用SQL语言操作的是数据,而Hibernate则是利用自己的查询语言Hibernate Query Language(HQL虽然底层还是要转换成sql语言)操作的是持久化对象...

    hibernate学习笔记

    hibernate一对一主键关联映射(双向关联Person&lt;----&gt;IdCard) 9 hibernate一对一唯一外键关联映射(单向关联Person----&gt;IdCard) 10 hibernate一对一唯一外键关联映射(双向关联Person&lt;----&gt;IdCard) 11 session ...

    Hadoop-2.8.0-Day08-Hive函数与HQL详解-课件与资料.zip

    Hadoop-2.8.0-Day08-Hive函数与HQL详解-课件与资料.zip

    瀚强HQL75D-2SA 480电源原理图.pdf

    瀚强HQL75D-2SA 480电源原理图.pdf

    SpringMVC-SSH全注解

    List&lt;User&gt; 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资料

    Hibernate HQL 查询 Query 资料 3个word总结的资料。

    MLDN框架笔记大全

    MLDN框架笔记大全&lt;br&gt;JSP+JDBC_假分页 &lt;br&gt;02 JSP+JDBC_真分页(基于MySQL数据库分页)...试学下载 &lt;br&gt;12 Struts + DAO分页 &lt;br&gt;13 Hibernate入门(上) &lt;br&gt;14 Hibernate入门(下) &lt;br&gt;15 Hibernate数据检索(HQL) 试学下载

    Spring--HQL-chaxun.zip_HQL

    Spring中常用的HQL查询方法,用户可以从里面学到在spring中学习hql

    Hibernate-HQL-QBC-QBE

    NULL 博文链接:https://awfrun.iteye.com/blog/690632

    hibernate 教程

    O/R Mapping基础&lt;br&gt;5.1. 映射声明(Mapping declaration)&lt;br&gt;5.1.1. Doctype&lt;br&gt;5.1.2. hibernate-mapping&lt;br&gt;5.1.3. class&lt;br&gt;5.1.4. id&lt;br&gt;5.1.4.1. generator&lt;br&gt;5.1.4.2. 高/低位算法(Hi/Lo Algorithm)&lt;br&gt;...

    hibernate

    O/R Mapping基础&lt;br&gt;5.1. 映射声明(Mapping declaration)&lt;br&gt;5.1.1. Doctype&lt;br&gt;5.1.2. hibernate-mapping&lt;br&gt;5.1.3. class&lt;br&gt;5.1.4. id&lt;br&gt;5.1.4.1. generator&lt;br&gt;5.1.4.2. 高/低位算法(Hi/Lo Algorithm)&lt;br&gt;...

    Hadoop-2.8.0-Day07-HA-Hive安装部署与HQL-课件与资料.zip

    Hadoop-2.8.0-Day07-HA-Hive安装部署与HQL-课件与资料.zip

    hibernate-hql-lucene-1.0.1.Final.zip

    pact-jvm.zip,pact模型

    HQL语法入门学习HQL语法入门学习

    HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL...

    hibernate-hql-testing-1.0.0.Alpha5.zip

    sbt-junit.zip,面向junit的sbt测试接口的sbt-junitan实现

    hibernate总结

    &lt;param name="property "&gt;emp&lt;/param&gt; &lt;/generator&gt; &lt;/id&gt; &lt;one-to-one name="emp" class="Employees" fetch="join" constrained="true" cascade="save-update" &gt; &lt;/one-to-one&gt; &lt;property name=...

    hibernate-HQL语句大全

    hibernate-HQL语句大全

    hibernate查询语句--HQL

    hibernate查询语句--HQL hibernate查询语句--HQL

    Hibernate_NSQL&HQL增删改操作

    NSQL和HQL的简单操作

    HQL语句 HQL语句

    HQL语句 HQL语句 HQL语句 HQL语句 HQL语句

Global site tag (gtag.js) - Google Analytics