Java 如何使用hibernate连接两个表

Java 如何使用hibernate连接两个表,java,mysql,hibernate,Java,Mysql,Hibernate,我想使用HQL或Criterial连接两个表 桌子是 购物车表(购物车ID、bookid、customeremailid、数量) 书桌(书号、书名、书价、书量) 我的sql查询是这样的 select count(c.cartId) as cartId,b.bookName as bookName,c.customeremailid as customeremailid,sum(b.bookPrice)as c.price,c.quantity from Book b,Cart c where

我想使用HQL或Criterial连接两个表

桌子是

  • 购物车表(购物车ID、bookid、customeremailid、数量)
  • 书桌(书号、书名、书价、书量)
我的sql查询是这样的

select count(c.cartId) as cartId,b.bookName as bookName,c.customeremailid as customeremailid,sum(b.bookPrice)as c.price,c.quantity from Book b,Cart c where  c.customeremailid='"+customeremailid+"' and b.bookId=c.bookid
这将给出
cartId
的计数和
bookPrice

我正在将此结果存储到
列表中

以下是
购物车POJO
变量

private int bookid,cartId;
    private String customeremailid,bookName,bookDescription,image;
    private int quantity;
    private long price;
HQL查询:

String sql="select count(c.cartId) as cartId,b.bookName as bookName,c.customeremailid as customeremailid,sum(b.bookPrice)as price,c.quantity from Book b,Cart c where  c.customeremailid='"+customeremailid+"' and b.bookId=c.bookid";
             Query q=s.createSQLQuery(sql);
             Cartlist=q.setResultTransformer(Transformers.aliasToBean(Cart.class)).list();


             for(Cart c :Cartlist)
             {
                 System.out.println("in cart : "+c.getCartId());
                 System.out.println("in cart : "+c.getPrice());
             }
我不知道在Hibernate里怎么做

恳请建议
感谢使用hibernate标准加入,示例代码如下:

List cats = sess.createCriteria(Cat.class)
    .createAlias("kittens", "kt")
    .createAlias("mate", "mt")
    .add( Restrictions.eqProperty("kt.name", "mt.name") )
    .list();
参考: