您的位置:首页 > 其它

Criteria 外键匹配查询

2015-11-03 22:53 399 查看
package jd;

import java.util.List;

import org.hibernate.Criteria;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.hibernate.criterion.Projections;

import org.hibernate.criterion.Restrictions;

import com.oracle.jingdong.entity.Goods;

import com.oracle.jingdong.entity.ThirdClass;

import entity.Student;

public class quchong {

public static void main(String[] args) {

Configuration cf=new Configuration().configure();

SessionFactory sf=cf.buildSessionFactory();

Session session=sf.openSession();

Transaction ts=session.beginTransaction();

//Criteria cr=session.createCriteria(Goods.class);

/*cr.setProjection( Projections.projectionList().

add( Projections.groupProperty("thirdClass"))

.add(Projections.groupProperty("brand")));*/

// cr.createAlias("brand", "mt");

// cr.setProjection(Projections.projectionList().

//
add( Projections.groupProperty("brand")));

//cr.setProjection(Projections.distinct(Projections.property("thirdClass")));

// cr.setProjection(Projections.distinct(Projections.property("brand")));

//cr.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

//cr.add(Restrictions.eq("brand.brandId", 1) );

/*cr.setProjection( Projections.projectionList().

add( Projections.groupProperty("thirdClass"))

.add(Projections.groupProperty("brand")));*/

// cr.createAlias("brand", "mt");

// cr.setProjection(Projections.projectionList().

//
add( Projections.groupProperty("brand")));

//cr.setProjection(Projections.distinct(Projections.property("thirdClass")));

// cr.setProjection(Projections.distinct(Projections.property("brand")));

//cr.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

Criteria cr=session.createCriteria(Goods.class);//brandId为goods外键,为Brand主键

//cr.add(Restrictions.eq("brand.brandId", 1));//是外键的直接用,没问题

//cr.add(Restrictions.eq("brand.brandName", "aaa"));//报错

cr.createAlias("brand", "b").add(Restrictions.eq("b.brandName", "aaa"));//不是外键的定义别名不报错

List objList=cr.list();

// System.out.println("dddddddddddd"+cr.list().size());

for(Object obj:objList)

System.out.println(((Goods)obj).getGoodsTitle());

ts.commit();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: