如何使用条件查询在Spring和Hibernate中连接两个表

时间:2016-06-06 10:05:24

标签: java spring hibernate

我想通过使用条件查询在Spring + Hibernate应用程序中连接两个表,但它不起作用。我在下面包含了我的表格和DAO代码。

  

用户

 ----------------------------------------------------------
| Column                                              |    |
 ----------------------------------------------------------
| id                                                  | PK |
| address                                             |    |
| mobile                                              |    |
| otp                                                 |    |
| password                                            |    |
| user_name                                           |    |
| user_type                                           |    |
 ----------------------------------------------------------
  

跟踪

 ----------------------------------------------------------
| Column                                              |    |
 ----------------------------------------------------------
| id                                                  | PK |
| location                                            |    |
| product_id                                          |    |
| qrdate                                              |    |
| serial                                              |    |
| userId                                              | FK |
 ----------------------------------------------------------
  

DAO 代码

Criteria crit = currentSession().createCriteria(QrCodeList.class);

Criteria prdCrit = crit.createCriteria("user");
prdCrit.add(Restrictions.eq("serial","F1VKCva01"));

List results = crit.list();

运行条件查询始终会引发错误。

1 个答案:

答案 0 :(得分:0)

您需要使用别名

Criteria crit = session.createCriteria("user");

crit.createAlias("user.tracking", "tracking")
crit.add(Restrictions.eq("tracking.serial","F1VKCva01"));

List results = crit.list();

您需要拥有UserTracking之间的关联。