Hibernate Reactive supports
์ฟผ๋ฆฌ ์คํํ๊ธฐ
Mutiny
Stateful Session (์ํ ๊ธฐ๋ฐ ์ธ์
)
import com.linecorp.kotlinjdsl.support.hibernate.reactive.extension.createQuery
import com.linecorp.kotlinjdsl.support.hibernate.reactive.extension.createMutationQuery
import io.smallrye.mutiny.Uni
import org.hibernate.reactive.mutiny.Mutiny
val sessionFactory: Mutiny.SessionFactory = ...
val context = JpqlRenderContext()
// ๊ฒฐ๊ณผ ๋ชฉ๋ก ์กฐํ
val selectQuery = jpql {
select(
entity(Book::class)
).from(
entity(Book::class)
)
}
val books: Uni<List<Book>> = sessionFactory.withSession { session ->
session.createQuery(selectQuery, context).resultList
}
// Update ๊ตฌ๋ฌธ ์คํ
val updateQuery = jpql {
update(
entity(Book::class)
).set(
path(Book::price), BookPrice(10)
).where(
path(Book::isbn).eq(Isbn("01"))
)
}
val updatedRows: Uni<Int> = sessionFactory.withTransaction { session, _ ->
session.createMutationQuery(updateQuery, context).executeUpdate()
}Stateless Session (์ํ ๋น์ ์ฅ ์ธ์
)
Stage
Stateful Session (์ํ ๊ธฐ๋ฐ ์ธ์
)
Stateless Session (์ํ ๋น์ ์ฅ ์ธ์
)
Fetch ์ ๋ต๊ณผ ์ธ์
๋ฒ์์ ๋ํ ์ฐธ๊ณ ์ฌํญ
์์ ํ ๋ฐฉ๋ฒ: ์ธ์
๋ฒ์ ๋ด์์ ์ง์ฐ ๋ก๋ฉ๋ ์ฐ๊ด ๊ด๊ณ ์ ๊ทผํ๊ธฐ
ํ์์ ์ธ ๋ฐฉ๋ฒ: ์ธ์
๋ฒ์ ๋ฐ์์ ์ฌ์ฉํ๊ธฐ ์ํด fetch join ์ฌ์ฉํ๊ธฐ
fetch join ์ฌ์ฉํ๊ธฐLast updated