我尝试在Entity中使用JPA @Embedded对象。那个嵌入式有@OneToOne relationsip,但我尝试使用JPQL进行过滤。有生成CROSS JOIN,但我预计INNER JOIN。见例:
@Entity
Class A{
@Id
Long id;
@Embedded
private B b;
}
@Emdeddable
Class B{
@OneToOne
private C c;
}
@Entity
Class C{
@Column
private name;
}
在数据库中,FK列为" C"表格在" A"表。当我尝试这个JPQL时:SELECT FROM a WHERE a.b.c.name = :name
我期望JPA执行以下操作:A inner join C on A.id=C.id
,但JPA执行A cross join B where A.id=B.id
我不希望将C关系放在实体A中,因为我的特定代码组织。对此有任何解决方案吗?这是一个错误吗?