-1

我是hibernate的新手,所以我很确定你们中的一些人会被这个问题逗乐。它一直让我发疯。这是一个休眠查询问题。

我有两张桌子,假设一张是出口,一张是传单

  • 出口 - 出口名称、出口地址、商家名称

  • 传单 - flyerId、flyerName、merchantName

所以传单属于商人,商人有很多网点等,

使用hibernate,要获得一个简单的查询,比如使用merchantName从出口表中获取不同的出口,我使用代码:

public List<Outlet> getDealOutlet(@PathParam("merchant") String merchant) {

some code here....

outletsList = session.createQuery("from Outlet as outlet where outlet.merchantName =      :merchant").setString( "merchant", merchant ).list(); 

some code here 

}

那行得通。

我的问题是如何返回特定 flyerId 的网点列表。

感谢任何帮助谢谢

4

2 回答 2

1

问题是“如何返回与特定 flyerId 关联的商家的网点列表?”

如果是这样,您是否有一个映射到类 Merchant 的表商家?这就是下山的路;Hibernate 可以轻松地让您跨联接查询,但是如果 Hibernate 不知道联接,因为您所拥有的只是一个名为的魔术字符串merchantName,而您知道这两个表中恰好是相同的,那么 Hibernate 无法帮助您出去。

(当然你可以运行两个查询,但我怀疑这就是你要找的。)

于 2013-07-26T00:44:51.790 回答
0

这取决于您的映射,如果有一个Merchant实体,并且其他两个实体都有关联,它可以写成:

select o
  from Outlet o
  join o.merchant m
  join m.flyers f
 where f.id = :flyersId

否则,您可以像在 SQL 中那样做一些事情:

select o
  from Outlet o, Flyers f
 where o.merchant = f.merchant and f.id = :flyersId
于 2013-07-26T00:41:53.810 回答