hibernate,加入3个表

时间:2013-07-16 11:02:13

标签: hibernate join hql

我有3个豆子:产品,颜色,价格

价格 - 产品关系 - @ManyToOne

产品 - 颜色关系 - @ManyToMany

每种颜色有3种产品,每种产品有3种价格

我将解释我的问题:在Product表中我有一个字段“type”,在价格表中我有字段“price_min”

我是否需要获取指定颜色的所有价格?我如何使用HQL进行此操作?

Query query =hibernatesession.createQuery("select distinct prlpx from  Color c, Product pr " +
                         "join pr.listPrice prlpx" +
                         "join c.listProduct clpr  where clpr.nom='"+color+"'  " +
                       " AND prlpx.price_min='"+price_min+"' pr.type='x' ");
            listPrice =(List<Price>)query.list();

但不起作用!!!!

1 个答案:

答案 0 :(得分:0)

prlpx 加入之间错过了sql中的空格。

试试这个

Query query =hibernatesession.createSQLQuery("select distinct prlpx from  Color c, Product pr " +
                         "join pr.listPrice prlpx " +
                         "join c.listProduct clpr  where clpr.nom='"+color+"'  " +
                       " AND prlpx.price_min='"+price_min+"' pr.type='x' ");

请注意,我使用了 createSQLQuery