【发布时间】:2011-07-05 19:24:46
【问题描述】:
我正在尝试习惯 JPQL,但我已经陷入困境。这是怎么回事:
SELECT * FROM Table_a INNER JOIN Table_b USING (Table_bID) Where Table_b.Column_a LIKE 'somestring'
翻译成 JPQL ?我将非常感谢任何帮助。
【问题讨论】:
我正在尝试习惯 JPQL,但我已经陷入困境。这是怎么回事:
SELECT * FROM Table_a INNER JOIN Table_b USING (Table_bID) Where Table_b.Column_a LIKE 'somestring'
翻译成 JPQL ?我将非常感谢任何帮助。
【问题讨论】:
select a from EntityMappedToTableA
inner join fetch a.entityMappedToTableB b
where b.fieldMappedOnColumnA like :someString
为此,您必须具有从 EntityMappedToTableA 到 EntityMappedToTableB 的关系(我假设它是 ManyToOne,因为表 A 中似乎有几行具有表 B 的 ID):
@Entity
public class EntityMappedToTableA {
@ManyToOne
@JoinColumn(name = "Table_bID")
private EntityMappedToTableB entityMappedToTableB;
// ...
}
【讨论】:
. createQuery("SELECT k FROM Kinder k INNER JOIN FETCH k.vaeter WHERE k.vaterName LIKE :vname");` 是查询。这样做我得到一个例外,其中“类 [kms3.entities.Kinder] 的未知状态或关联字段 [vaterName]。”正如我所看到的,我试图在实体“Kinder”而不是实体“Vaeter”中读取“vaterName”。是查询错误还是映射错误?