Eager 인 경우

@Entity
data class Parent (
    @Id
    @GeneratedValue
    val id: Long = 0,

    @BatchSize(size = 5)
    @OneToMany(mappedBy = "parent", fetch = FetchType.EAGER, cascade = [CascadeType.PERSIST])
    val children: MutableList<Child> = mutableListOf()
) {
    fun prepareForSave(): Parent {
        this.children.forEach {
            it.parent = this
        }

        return this
    }
}
@Entity
data class Child (
    @Id
    @GeneratedValue
    val id: Long = 0
) {
    @ManyToOne(optional = false)
    lateinit var parent: Parent
}
// insert

val parent = Parent()

for (i in 1..10) {
    parent.children.add(Child())
}

val savedParent = parentRepository.save(parent.prepareForSave())
val getParent = parentRepository.getOne(savedParent.id)

for (child in getParent.children) {
    print(child.id)
}

Hibernate: insert into parent values ( )
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: 
select parent0_.id       as id1_62_0_,
       children1_.parent as parent2_33_1_,
       children1_.id     as id1_33_1_,
       children1_.id     as id1_33_2_,
       children1_.parent as parent2_33_2_
from parent parent0_
         left outer join child children1_ on parent0_.id = children1_.parent
where parent0_.id = ?;
12345678910

// select 조회
val parent = parentRepository.getOne(5)

for (child in parent.children) {
    print(child.id)
}

Hibernate: 
select parent0_.id       as id1_62_0_,
       children1_.parent as parent2_33_1_,
       children1_.id     as id1_33_1_,
       children1_.id     as id1_33_2_,
       children1_.parent as parent2_33_2_
from parent parent0_
         left outer join child children1_ on parent0_.id = children1_.parent
where parent0_.id = ?;
12345678910

LAZY 인 경우

@Entity
data class Parent (
    @Id
    @GeneratedValue
    val id: Long = 0,

    @BatchSize(size = 5)
    @OneToMany(mappedBy = "parent", cascade = [CascadeType.PERSIST])
    val children: MutableList<Child> = mutableListOf()
) {
    fun prepareForSave(): Parent {
        this.children.forEach {
            it.parent = this
        }

        return this
    }
}
// insert

val parent = Parent()

for (i in 1..10) {
    parent.children.add(Child())
}

val savedParent = parentRepository.save(parent.prepareForSave())
val getParent = parentRepository.getOne(savedParent.id)

for (child in getParent.children) {
    print(child.id)
}

Hibernate: insert into parent values ( )
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: insert into child (parent) values (?)
Hibernate: select parent0_.id as id1_62_0_ from parent parent0_ where parent0_.id=?
Hibernate: 
select children0_.parent as parent2_33_1_,
       children0_.id     as id1_33_1_,
       children0_.id     as id1_33_0_,
       children0_.parent as parent2_33_0_
from child children0_
where children0_.parent = ?;
Hibernate: select parent0_.id as id1_62_0_ from parent parent0_ where parent0_.id=?
12345678910
// select 조회
val parent = parentRepository.getOne(5)

for (child in parent.children) {
    print(child.id)
}

Hibernate: select parent0_.id as id1_62_0_ from parent parent0_ where parent0_.id=?
Hibernate: 
select children0_.parent as parent2_33_1_,
       children0_.id     as id1_33_1_,
       children0_.id     as id1_33_0_,
       children0_.parent as parent2_33_0_
from child children0_
where children0_.parent = ?;
Hibernate: select parent0_.id as id1_62_0_ from parent parent0_ where parent0_.id=?
12345678910

insert 는.. insert into parent values ( ) 로 values() 를 사용하고 child 의 insert 가 row 단위로 로그가 있다고 해도.. 내부적으로 묶어서 보낸다고 치더라도, 조회는 뭔가 이상하네요..?