package com.jadetrust.dao;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
* TCategory entity. @author MyEclipse Persistence Tools
*/
@Entity
@Table(name = "t_category", catalog = "test")
public class TCategory implements java.io.Serializable {
// Fields
@Override
public String toString() {
return "[ cateId=" + cateId + ", name=" + name + "]";
}
private Integer cateId;
private TCategory TCategory;
private String name;
private Set<TCategory> TCategories = new HashSet<TCategory>(0);
// Constructors
/** default constructor */
public TCategory() {
}
/** full constructor */
public TCategory(TCategory TCategory, String name,
Set<TCategory> TCategories) {
this.TCategory = TCategory;
this.name = name;
this.TCategories = TCategories;
}
// Property accessors
@Id
@GeneratedValue
@Column(name = "cate_id", unique = true, nullable = false)
public Integer getCateId() {
return this.cateId;
}
public void setCateId(Integer cateId) {
this.cateId = cateId;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
public TCategory getTCategory() {
return this.TCategory;
}
public void setTCategory(TCategory TCategory) {
this.TCategory = TCategory;
}
@Column(name = "name")
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "TCategory")
public Set<TCategory> getTCategories() {
return this.TCategories;
}
public void setTCategories(Set<TCategory> TCategories) {
this.TCategories = TCategories;
}
}
第四:具体数据库操作类UserService
package com.jadetrust.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.jadetrust.common.HibernateSessionFactory;
import com.jadetrust.dao.TCategory;
public class UserService {
public void add(TCategory cate){
Session session=HibernateSessionFactory.getSession();
Transaction tc=session.beginTransaction();
session.save(cate);
tc.commit();
session.close();
}
public void delete(TCategory cate){
Session session=HibernateSessionFactory.getSession();
Transaction tc=session.beginTransaction();
session.delete(cate);
tc.commit();
session.close();
}
public void update(TCategory cate){
Session session=HibernateSessionFactory.getSession();
Transaction tc=session.beginTransaction();
session.merge(cate);
tc.commit();
session.close();
}
public TCategory findById(String id){
String hql = "from TCategory where cateId=:id";
return (TCategory)HibernateSessionFactory.getSession().createQuery(hql).setString("id", id).uniqueResult();
}
public List<TCategory> findChildCategories(String id) {
if(id.equals("cate_root")||id==null||id.equals(" ")){
return findCategoriesTop();
}else{
return HibernateSessionFactory.getSession().
createQuery("from TCategory cate where cate.TCategory.cateId=:id").setString("id", id).list();
}
}
public List<TCategory> findCategoriesTop() {
System.out.println("查询顶级父目录.................");
String hql = "select distinct cate,childs from TCategory cate left join fetch cate.TCategories childs where cate.TCategory.cateId is null";
return HibernateSessionFactory.getSession().createQuery(hql).list();
}
public List<TCategory> findCategoriesAll() {
System.out.println("查询顶级父目录.................");
String hql = "from TCategory";
return HibernateSessionFactory.getSession().createQuery(hql).list();
}
public List<Map<String,String>> findNameById(String id){
List<Map<String,String>> names=new ArrayList<Map<String,String>>();
UserService sf=new UserService();
Set<TCategory> cates=sf.findById(id).getTCategories();
for(TCategory cate:cates){
Map<String,String> maps=new HashMap<String,String>();
maps.put("CATALOGSID", cate.getCateId().toString());
maps.put("CATALOGNAME", cate.getName());
names.add(maps);
}
return names;
}
public Integer findLastId(){
String hql="select max(cateId) from TCategory";
return (Integer)HibernateSessionFactory.getSession().createQuery(hql).uniqueResult();
}
}
这个示例只用了Hibernate,至于这个HibernateSessionFactory,它是利用MyEclipse反转数据库自动生成的,如果不知道可以参考我之前关于数据库反转的文章
相关视图