`
knight_black_bob
  • 浏览: 827615 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate alias 使用

阅读更多

 

hibernate 自连接 注解 item parentItem ( 非级联删除 , 级联查询)

http://knight-black-bob.iteye.com/blog/2290675

 

本文 介绍 .setResultTransformer(Transformers.aliasToBean(MenuVo.class) 并非 内链接 ,注解内链接请看上面博客

 

package com.cailing.menu.entity;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.slave4j.orm.hibernate.BaseEntity;

@SuppressWarnings("serial")
@JsonAutoDetect
@Entity
@Table(name = "t_activity")
@org.hibernate.annotations.Proxy(lazy = false)
public class Menu extends BaseEntity implements Serializable {
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id")
	private Integer id;
	
	@Column(name = "short_name")
	private String short_name;
	
	@Column(name = "menu_name")
	private String menu_name;
	
	@Column(name = "url")
	private String url;
	
	@Column(name = "state")
	private Integer state;
	
	@Column(name = "seq")
	private Integer seq;
	
	@Column(name = "level")
	private Integer level;
	
	@Column(name = "children")
	private Integer children;
	
	@Column(name = "parent_id")
	private Integer parent_id;
	
	@Column(name = "image")
	private String image;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getShort_name() {
		return short_name;
	}

	public void setShort_name(String short_name) {
		this.short_name = short_name;
	}

	public String getMenu_name() {
		return menu_name;
	}

	public void setMenu_name(String menu_name) {
		this.menu_name = menu_name;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public Integer getState() {
		return state;
	}

	public void setState(Integer state) {
		this.state = state;
	}

	public Integer getSeq() {
		return seq;
	}

	public void setSeq(Integer seq) {
		this.seq = seq;
	}

	public Integer getLevel() {
		return level;
	}

	public void setLevel(Integer level) {
		this.level = level;
	}

	public Integer getChildren() {
		return children;
	}

	public void setChildren(Integer children) {
		this.children = children;
	}

	public Integer getParent_id() {
		return parent_id;
	}

	public void setParent_id(Integer parent_id) {
		this.parent_id = parent_id;
	}

	public String getImage() {
		return image;
	}

	public void setImage(String image) {
		this.image = image;
	}
	
	

}

 

package com.cailing.menu.entity;

import java.util.List;

public class MenuVo {
	// M.id, M.parent_id,M.`LEVEL`,M.menu_name,M.children,M.URL,M.SEQ,M.IMAGE
	private Integer id;
	private Integer parentId;
	private Integer level;
	private String menuName;
	private Integer children;
	private String url;
	private Integer seq;
	private String image;
	
	private List<MenuVo>  childrenList;
	 
	
	@Override
	public String toString() {
		return "MenuVo [id=" + id + ", parentId=" + parentId + ", level=" + level + ", menuName=" + menuName
				+ ", children=" + children + ", url=" + url + ", seq=" + seq + ", image=" + image + ", childrenList="
				+ (childrenList  != null ? childrenList.toString() : null) + "]";
	}
	public List<MenuVo> getChildrenList() {
		return childrenList;
	}
	public void setChildrenList(List<MenuVo> childrenList) {
		this.childrenList = childrenList;
	}
	
	public Integer getSeq() {
		return seq;
	}
	public void setSeq(Integer seq) {
		this.seq = seq;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getParentId() {
		return parentId;
	}
	public void setParentId(Integer parentId) {
		this.parentId = parentId;
	}
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
	public String getMenuName() {
		return menuName;
	}
	public void setMenuName(String menuName) {
		this.menuName = menuName;
	}
	public Integer getChildren() {
		return children;
	}
	public void setChildren(Integer children) {
		this.children = children;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getImage() {
		return image;
	}
	public void setImage(String image) {
		this.image = image;
	}
	
	
}

 

 

package com.cailing.menu.dao;

import java.util.List;

import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.transform.Transformers;
import org.springframework.stereotype.Repository;
 
import com.cailing.base.BaseDao;
import com.cailing.menu.entity.Menu;
import com.cailing.menu.entity.MenuVo;

@Repository
public class MenuDao extends BaseDao<Menu>{

	
	public List<MenuVo> getList(Integer userId,Integer parentId){
		String sql ="SELECT   M.id id, M.parent_id parentId,M.LEVEL level ,M.menu_name menuName,M.children children,M.URL url,M.SEQ seq,M.IMAGE image FROM T_MENU M "+
				 " INNER JOIN T_ROLE_MENU R ON M.id = R.menu_id INNER JOIN T_ROLE E ON R.role_id = E.ID  "+
				 " INNER JOIN T_USER_ROLE L ON E.ID = L.role_id INNER JOIN T_USER S ON L.user_id = S.ID  "+
				 " WHERE S.ID=? AND  M.parent_id=? ORDER BY M.SEQ ASC  ";
	/*	private Integer id;
		private Integer parentId;
		private Integer level;
		private String menuName;
		private Integer children;
		private String url;
		private Integer seq;
		private String image;*/
		
		Query query = this.getSession().createSQLQuery(sql)
				.addScalar("id", Hibernate.INTEGER)
				.addScalar("parentId", Hibernate.INTEGER)
				.addScalar("level", Hibernate.INTEGER)
				.addScalar("menuName", Hibernate.STRING)
				.addScalar("children", Hibernate.INTEGER)
				.addScalar("url", Hibernate.STRING)
				.addScalar("seq", Hibernate.INTEGER)
				.addScalar("image", Hibernate.STRING) 
				.setResultTransformer(Transformers.aliasToBean(MenuVo.class)); 
		query.setInteger(0, userId);
		query.setInteger(1, parentId);
		return query.list();
	}
 
	public List<MenuVo> getList(Integer userId){
		List<MenuVo>  parentList = this.getList(userId, -1); 
		List<MenuVo> childrenList = null;
		for (MenuVo menuVo : parentList) {
			childrenList = this.getList(userId, menuVo.getId());
			menuVo.setChildrenList(childrenList);
		} 
		return parentList;
	}
	
	
}

 

 

package com.cailing.activity.service;

import java.util.List;

import javax.annotation.Resource;

import org.slave4j.orm.hibernate.BaseDao;
import org.slave4j.orm.hibernate.BaseService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.cailing.activity.dao.ActivityDao;
import com.cailing.activity.entity.Activity;

@Service
@Transactional
public class ActivityService extends BaseService<Activity>{

	@Override
	@Resource(name = "activityDao")
	public void setBaseDao(BaseDao<Activity> baseDao) { 
		this.baseDao = baseDao;
	}
	
	public List<Activity> getIndexActivity() {
		return ((ActivityDao)this.baseDao).getIndexActivity();
	}
	
	public List<Activity> getTest() {
		return ((ActivityDao)this.baseDao).getTest();
	}

}

 

 

package com.cailing.menu.service;

import java.util.List;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.cailing.menu.entity.MenuVo;
 

public class MenuServiceTest {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(  new String[] { "classpath*:applicationContext*.xml"  }); 
		 MenuService service = (MenuService) context.getBean("menuService");
		 
		 List<MenuVo> list = service.getList(2);
		 System.out.println(list.toString());
		 
	}		
		
}

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

  • 大小: 21.5 KB
0
8
分享到:
评论

相关推荐

    Hibernate+中文文档

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    hibernate3.2中文文档(chm格式)

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    HibernateAPI中文版.chm

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    Hibernate 中文 html 帮助文档

    别名和属性引用(Alias and property references) 16.1.5. 返回非受管实体(Returning non-managed entities) 16.1.6. 处理继承(Handling inheritance) 16.1.7. 参数(Parameters) 16.2. 命名SQL查询 16.2.1. 使用...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    16.1. 别名注射(alias injection names) 19.1. 缓存策略提供商(Cache Providers) 19.2. 各种缓存提供商对缓存并发策略的支持情况(Cache Concurrency Strategy Support) 20.1. Summary 20.2. SchemaExport...

    hibernate.properties

    hibernate.proxool.pool_alias pool1 ## Only need one of the following #hibernate.proxool.existing_pool true #hibernate.proxool.xml proxool.xml #hibernate.proxool.properties proxool.properties ####...

    三步完成Hibernate + sql server200 + proxool连接池

    &lt;property name="hibernate.proxool.pool_alias"&gt;dbpool&lt;/property&gt; &lt;property name="hibernate.proxool.xml"&gt; ProxoolConf.xml &lt;/property&gt; &lt;property name="connection.provider_class"&gt; org.hibernate....

    Hibernate Reference Documentation3.1

    1. Introduction to Hibernate 1.1. Preface 1.2. Part 1 - The first Hibernate Application 1.2.1. The first class 1.2.2. The mapping file 1.2.3. Hibernate configuration 1.2.4. Building with Ant 1.2.5. ...

    Hibernate参考文档

    别名和属性引用(Alias and property references) 16.1.5. 返回非受管实体(Returning non-managed entities) 16.1.6. 处理继承(Handling inheritance) 16.1.7. 参数(Parameters) 16.2. 命名SQL查询 16.2.1. 使用...

    Proxool 在 Hibernate 中的典型配置

    Proxool 是一种 Java 数据库连接池技术。本材料详细描述Proxool的配置过程。

    hibernate3.6 文档(pdf 格式)

    1.1. Part 1 - The first Hibernate Application ................................................................ 1 1.1.1. Setup .............................................................................

    spring-boot-2-oauth2-authorization-jwt:带有用户和客户端数据库(JPA,Hibernate,MySQL)的Spring Boot 2 OAuth2 JWT授权服务器实现

    关于如何使用Spring Boot 2 , JPA , Hibernate和MySQL使用JWT令牌设置OAuth2授权服务器的简单项目。 简而言之 所有和客户端都存储在数据库中。 可以具有许多与之相关联的,并且可以具有与之相关联的许多,这些最后...

    spring.doc

    3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认无参数) 14 3.3.2使用静态工厂方法实例化(简单工厂模式) 14 3.3.3初始化(创建)bean...

    iBATIS实战

    11.1.1 Hibernate版本的DAO实现 194 11.1.2 JDBC版本的DAO实现 199 11.2 为其他数据源使用DAO模式 203 11.2.1 示例:为LDAP使用DAO 203 11.2.2 示例:为Web服务使用DAO 208 11.3 使用Spring DAO 209 11.3.1 编写代码...

    NHibernate参考文档 2.0.0 chm

    5.1.2. hibernate-mapping 5.1.3. class 5.1.4. id 5.1.4.1. (主键生成策略)generator 5.1.4.2. 高/低位算法(Hi/Lo Algorithm) 5.1.4.3. 唯一标识16进制算法(UUID Algorithm ) 5.1.4.4. 唯一标识字符串算法 ...

    NHibernate中文帮组文档(2008.11月更新)

    5.1.2. hibernate-mapping 5.1.3. class 5.1.4. id 5.1.4.1. (主键生成策略)generator 5.1.4.2. 高/低位算法(Hi/Lo Algorithm) 5.1.4.3. 唯一标识16进制算法(UUID Algorithm ) 5.1.4.4. 唯一标识字符串算法 ...

    ibatis 开发指南(pdf)

    使用ibatis 提供的ORM 机制,对业务逻辑实现人员而言,面对的是纯粹的Java 对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求...

    springmybatis

    1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 &lt;typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/&gt; 这个别名...

    CA-100CUSB充电线改装为移动电源

    • Added ability to alias hi-speed baud rates up to 12Mbaud. • Added more languages to FTLang: o Dutch • Corrected positioning of controls on property page for some display settings. • FTLang will ...

    前端-后端java的Util类的工具类

    │ hibernate.cfg.xml │ HibernateDaoImpl.java │ HibernateSessionFactory.java │ HibernateUtil.java │ JsonUtil.java │ list.txt │ log4j.properties │ messageResource_zh_CN.properties │ spring.xml ...

Global site tag (gtag.js) - Google Analytics