// Path: src/main/java/com/avicit/bis/system/resource/entity/Resource.java
// @Entity
// @Table(name="SYS_RESOURCE")
// public class Resource extends BaseEntity{
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private Integer id;
// 	
// 	private String text;
// 	
// 	private String component;
// 	
// 	private String description;
// 	
// 	private String iconCls;
// 	
// 	private List<Resource> children = new ArrayList<Resource>();
// 	
// 	private Resource parent;
// 	
// 	private Integer index;
// 	
// 	private String type;
// 	
// 	@Id 
// 	@GeneratedValue
// 	@Column(name="ID")
// 	public Integer getId() {
// 		return id;
// 	}
// 	
// 
// 	public void setId(Integer id) {
// 		this.id = id;
// 	}
// 
// 	@Column(name="TEXT")
// 	public String getText() {
// 		return text;
// 	}
// 
// 	public void setText(String text) {
// 		this.text = text;
// 	}
// 
// 	@Column(name="DESCRIPTON")
// 	public String getDescription() {
// 		return description;
// 	}
// 
// 	public void setDescription(String description) {
// 		this.description = description;
// 	}
// 
// 	@Column(name="ICONCLS")
// 	public String getIconCls() {
// 		return iconCls;
// 	}
// 
// 	public void setIconCls(String IconCls) {
// 		this.iconCls = IconCls;
// 	}
// 
// 	@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
// 	@JoinColumn(name = "PARENT_ID")
// 	@OrderBy("index asc")
// 	public List<Resource> getChildren() {
// 		return children;
// 	}
// 
// 	public void setChildren(List<Resource> children) {
// 		this.children = children;
// 	}
// 
// 	@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE},fetch=FetchType.LAZY )
//     @JoinColumn(name = "PARENT_ID")
// 	public Resource getParent() {
// 		return parent;
// 	}
// 
// 	public void setParent(Resource parent) {
// 		this.parent = parent;
// 	}
// 
// 	@Column(name="COMPONENT")
// 	public String getComponent() {
// 		return component;
// 	}
// 
// 	public void setComponent(String component) {
// 		this.component = component;
// 	}
// 	
// 	@Column(name="TYPE")
// 	public String getType() {
// 		return type;
// 	}
// 	public void setType(String type) {
// 		this.type = type;
// 	}
// 	
// 	@Column(name="SORT")
// 	public Integer getIndex() {
// 		return index;
// 	}
// 	public void setIndex(Integer index) {
// 		this.index = index;
// 	}
// 	
// 	public boolean hasChildren(){
// 		return this.getChildren().size() > 0;
// 	}
// 	
// 	@Transient
// 	public boolean getLeaf(){
// 		return !this.hasChildren();
// 	}
// }
// 
// Path: src/main/java/com/avicit/framework/support/dao/hibernate/HibernateDao.java
// public interface HibernateDao<T,ID> {
// 	
// 	public List<T> find();
// 
// 	/**
// 	 * 保存实体类，返回主键ID
// 	 * @param <ID>
// 	 * @param <T>
// 	 * @param entity 实体类
// 	 * @return
// 	 */
// 	public ID save(T entity);
// 	
// 	/**
// 	 * 删除集合
// 	 * @param <T>
// 	 * @param entityList
// 	 */
// 	public  void delete(List<T> entityList);
// 	
// 	/**
// 	 * 删除实体类
// 	 * @param <T>
// 	 * @param entity
// 	 */
// 	public void delete(T entity);
// 	
// 	/**
// 	 * 更新实体类
// 	 * @param <T>
// 	 * @param entity
// 	 */
// 	public void update(T entity);
// 	
// 	public T get(ID id);
// 	
// 	/**
// 	 * @param content
// 	 */
// 	
// 	public Object findUniqueBy(Class<?> entityClass, String propertyName,
// 			Object value);
// 	
// 	public List<T> findByHQL(String hql);
// 	
// 	public List<T> findWithWhere(String where);
// 	
// 	public List<T> findPageByHql(String hql, Object... params);
// }


import java.util.List;
import com.avicit.bis.system.resource.entity.Resource;
import com.avicit.framework.support.dao.hibernate.HibernateDao;
package com.avicit.bis.system.resource.dao;




public interface ResourceDAO<T,ID> extends HibernateDao<T,ID> {

	public List<Resource> getRootResource();
	
// Path: src/main/java/com/avicit/bis/system/resource/entity/Resource.java
// @Entity
// @Table(name="SYS_RESOURCE")
// public class Resource extends BaseEntity{
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private Integer id;
// 	
// 	private String text;
// 	
// 	private String component;
// 	
// 	private String description;
// 	
// 	private String iconCls;
// 	
// 	private List<Resource> children = new ArrayList<Resource>();
// 	
// 	private Resource parent;
// 	
// 	private Integer index;
// 	
// 	private String type;
// 	
// 	@Id 
// 	@GeneratedValue
// 	@Column(name="ID")
// 	public Integer getId() {
// 		return id;
// 	}
// 	
// 
// 	public void setId(Integer id) {
// 		this.id = id;
// 	}
// 
// 	@Column(name="TEXT")
// 	public String getText() {
// 		return text;
// 	}
// 
// 	public void setText(String text) {
// 		this.text = text;
// 	}
// 
// 	@Column(name="DESCRIPTON")
// 	public String getDescription() {
// 		return description;
// 	}
// 
// 	public void setDescription(String description) {
// 		this.description = description;
// 	}
// 
// 	@Column(name="ICONCLS")
// 	public String getIconCls() {
// 		return iconCls;
// 	}
// 
// 	public void setIconCls(String IconCls) {
// 		this.iconCls = IconCls;
// 	}
// 
// 	@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
// 	@JoinColumn(name = "PARENT_ID")
// 	@OrderBy("index asc")
// 	public List<Resource> getChildren() {
// 		return children;
// 	}
// 
// 	public void setChildren(List<Resource> children) {
// 		this.children = children;
// 	}
// 
// 	@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE},fetch=FetchType.LAZY )
//     @JoinColumn(name = "PARENT_ID")
// 	public Resource getParent() {
// 		return parent;
// 	}
// 
// 	public void setParent(Resource parent) {
// 		this.parent = parent;
// 	}
// 
// 	@Column(name="COMPONENT")
// 	public String getComponent() {
// 		return component;
// 	}
// 
// 	public void setComponent(String component) {
// 		this.component = component;
// 	}
// 	
// 	@Column(name="TYPE")
// 	public String getType() {
// 		return type;
// 	}
// 	public void setType(String type) {
// 		this.type = type;
// 	}
// 	
// 	@Column(name="SORT")
// 	public Integer getIndex() {
// 		return index;
// 	}
// 	public void setIndex(Integer index) {
// 		this.index = index;
// 	}
// 	
// 	public boolean hasChildren(){
// 		return this.getChildren().size() > 0;
// 	}
// 	
// 	@Transient
// 	public boolean getLeaf(){
// 		return !this.hasChildren();
// 	}
// }
// 
// Path: src/main/java/com/avicit/framework/support/dao/hibernate/HibernateDao.java
// public interface HibernateDao<T,ID> {
// 	
// 	public List<T> find();
// 
// 	/**
// 	 * 保存实体类，返回主键ID
// 	 * @param <ID>
// 	 * @param <T>
// 	 * @param entity 实体类
// 	 * @return
// 	 */
// 	public ID save(T entity);
// 	
// 	/**
// 	 * 删除集合
// 	 * @param <T>
// 	 * @param entityList
// 	 */
// 	public  void delete(List<T> entityList);
// 	
// 	/**
// 	 * 删除实体类
// 	 * @param <T>
// 	 * @param entity
// 	 */
// 	public void delete(T entity);
// 	
// 	/**
// 	 * 更新实体类
// 	 * @param <T>
// 	 * @param entity
// 	 */
// 	public void update(T entity);
// 	
// 	public T get(ID id);
// 	
// 	/**
// 	 * @param content
// 	 */
// 	
// 	public Object findUniqueBy(Class<?> entityClass, String propertyName,
// 			Object value);
// 	
// 	public List<T> findByHQL(String hql);
// 	
// 	public List<T> findWithWhere(String where);
// 	
// 	public List<T> findPageByHql(String hql, Object... params);
// }


// Path: src/main/java/com/avicit/bis/system/resource/dao/ResourceDAO.java
import java.util.List;
import com.avicit.bis.system.resource.entity.Resource;
import com.avicit.framework.support.dao.hibernate.HibernateDao;

package com.avicit.bis.system.resource.dao;




public interface ResourceDAO<T,ID> extends HibernateDao<T,ID> {

	public List<Resource> getRootResource();
	
	public List<Resource> getChildrenByParent(Integer id);