Skip to content

Commit

Permalink
docs: reflect second reviews
Browse files Browse the repository at this point in the history
  • Loading branch information
progress0407 committed Mar 18, 2024
1 parent c19c652 commit 47626c6
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# How is Kotlin JDSL different from jOOQ and QueryDSL?

Unlike jOOq and QueryDSL, Kotlin JDSL does not generate a `Metadata Model (code generation) for writing queries.
Unlike jOOQ and QueryDSL, Kotlin JDSL does not generate a `Metadata Model (code generation) for writing queries.

If you use code generation, you'll have to do the following:

```
Modify tables and entities →
Entity modification causes compile errors →
Run Manven or Gradle task to regenerate the metadate
Run Maven or Gradle task to regenerate the metadata model
Write query based on modified entity
```

Expand All @@ -19,7 +19,7 @@ However, the Kotlin JDSL uses code generation and pure code-based query construc

This means that as soon as you modify an entity or field name, it is reflected in the query code, and the above inconvenience does not exist.

It also adopts an ORM-based object-oriented query like JPQL, which supports specifications such as polymorphism and fetch joins.
It also adopts an ORM-based, object-oriented query approach like JPQL, which supports specifications such as polymorphism and fetch joins.

Therefore, the way we write queries also relies on object names and fields to query, rather than querying the table/column itself.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Kotlin JDSL은 jOOQ, QueryDSL와 무엇이 다른가요?

jOOq와 QueryDSL과 다르게 Kotlin JDSL의 경우 쿼리 작성을 위해 `Metadata Model(코드 제너레이션)`을 생성하지 않습니다.
jOOQ와 QueryDSL과 다르게 Kotlin JDSL의 경우 쿼리 작성을 위해 `Metadata Model(코드 제너레이션)`을 생성하지 않습니다.

코드 제너레이션 방식을 사용하면 다음과 같은 수고로움이 있습니다:

```
테이블과 엔티티 수정 →
엔티티 수정으로 컴파일 오류 발생 →
메타데이터를 다시 생성하기 위해 Manven 또는 Gradle 작업 실행 →
메타데이터를 다시 생성하기 위해 Maven 또는 Gradle 작업 실행 →
수정된 엔티티를 기반으로 쿼리 작성
```

Expand All @@ -19,7 +19,7 @@ JPQL은 문자열 기반의 쿼리 작성 방식을 사용하기 때문에, 컴

즉, 엔티티나 필드 이름을 수정하는 즉시 쿼리 코드에 반영이 되어 위와 같은 불편함이 존재하지 않습니다.

JPQL과 같이 ORM 기반의 객체지향 쿼리를 채택하고 있어서 다형성, Fetch 조인 등의 스펙을 지원합니다.
또한 JPQL과 같이 ORM 기반의 객체지향 쿼리를 채택하고 있어서 다형성, Fetch 조인 등의 스펙을 지원합니다.

따라서 쿼리를 작성하는 방식 또한 테이블/컬럼 자체에 쿼리를 하는 것이 아닌 객체명과 필드에 의존하여 쿼리를 합니다.

Expand Down

0 comments on commit 47626c6

Please sign in to comment.