spring data jpa findAll sql yang dihasilkan tidak menggunakan join [duplikat]

Saya memiliki entitas sebagai berikut

@Entity
public class User {

    @Id
    private Long id;
    @ManyToOne(cascade = CascadeType.ALL)
    private Type type;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Type getType() {
        return type;
    }

    public void setType(Type type) {
        this.type = type;
    }
}

Panggil findOne() atau findAllll() pada entitas ini menghasilkan sql yang berbeda

Temukan semua()

Hibernate: 
    select
        user0_.id as id1_1_,
        user0_.type_id as type_id2_1_ 
    from
        user user0_
Hibernate: 
    select
        type0_.id as id1_0_0_,
        type0_.name as name2_0_0_ 
    from
        type type0_ 
    where
        type0_.id=?

temukanSatu()

Hibernate: 
    select
        user0_.id as id1_1_0_,
        user0_.type_id as type_id2_1_0_,
        type1_.id as id1_0_1_,
        type1_.name as name2_0_1_ 
    from
        user user0_ 
    left outer join
        type type1_ 
            on user0_.type_id=type1_.id 
    where
        user0_.id=?

mengapa findAll() sql yang dihasilkan tidak menggunakan join?

Saya membuat contoh repositori dengan pertanyaan ini

https://github.com/wensimin/jpa-join-query

terima kasih!


person shali    schedule 14.12.2017    source sumber
comment
stackoverflow.com/ pertanyaan/36489133/   -  person Maciej Kowalski    schedule 14.12.2017
comment
Halo, pertanyaan ini digunakan ManyToOne bukan OneToMany. dalam keadaan ini tidak akan ada lagi baris dalam kumpulan hasil. mengapa findOne() menggunakan join tetapi findAll() tidak menggunakan join?   -  person shali    schedule 15.12.2017