@Embedded对象在JPQL上创建CROSS JOIN

时间:2017-04-26 21:17:25

标签: jpa entity-relationship cross-join

我尝试在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中,因为我的特定代码组织。对此有任何解决方案吗?这是一个错误吗?

0 个答案:

没有答案