【发布时间】:2012-12-24 17:10:54
【问题描述】:
我的数据库中有以下表结构:
Table A: Table B: Table C:
_______________________ ______________________________ ______________________
| Field | Type | Key | | Field | Type | Key | | Field | Type | Key |
______________________| |_____________________________| |_____________________|
| a_id | Int | PRI | | a_id | Int | FK of A(a_id)| | c_id | Int | PRI |
| ... ... | | c_id | Int | FK of C(c_id)| | ... |
|_____________________| ______________________________ |_____________________|
还有对象:
class A {
List<C> list;
...
}
现在我想从数据库中接收一个对象 A,其中包含由表 B 组合的所有 C 对象。我有接收正确对象 A 的标准,但我不知道如何接收列表对应的 C 对象:
Criteria crit = ...;
A a = crit.uniqueResult();
这是给我正确结果的 SQL 查询,现在应该在标准中“翻译”:
select c.*
from A as a,
B as b,
C as c
where a.a_id = b.a_id and b.c_id = c.c_id;
有人知道如何制定标准吗?
【问题讨论】:
-
您是否尝试过使用 HQL 而不是 Criteria api?您的实体看起来如何?
-
所有其他数据库访问都是使用 Criterias 完成的,因此我想坚持那个;我添加了有效的 SQL 查询,该查询应该在标准中“翻译”