Hibernate交叉连接而不是内连接

时间:2016-02-03 07:53:10

标签: java mysql hibernate jpa join

我有两个实体(Order,Account)并使用以下关系:

@ManyToOne(optional = false)
@JoinColumn(name = "account_id", nullable = false)
public Account getAccount() {
    return account;
}

我希望按帐户名称获取所有订单。 我正在使用JPA存储库,我只需要定义具有特定名称的方法:

public interface OrdersRepository extends JpaRepository<Order, String> {
    List<Order> findByAccountName(String accountName);
}

Hibernate生成以下sql查询:

select order0_.id as id1_1_, order0_.account_id as account20_1_ from orders order0_ cross join accounts account1_ where order0_.account_id=account1_.id and account1_.name = ?

我知道有order0_.account_id=account1_.id条件交叉连接与内连接具有相同的行为,但我的问题是: 为什么hibernate不使用内连接? 我找不到配置中的错误。

hibernate.dialect=org.hibernate.dialect.MySQLDialect

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.0.6.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.0.6.Final</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.9.2.RELEASE</version>
    </dependency>

提前致谢!

0 个答案:

没有答案