本当!コトリンとスプリングブートで図書館アプリケーションを開発する(Javaプロジェクトリファクタリング)
Java + Spring Bootで作成されたWebアプリケーションをKotlin + Spring Bootにリファクタリングし、追加の要件を実装します。この過程で Junit5、SQL、JPA、Querydsl を使用するだけでなく、設計と実装の観点からさまざまな方法の長所と短所を扱うことになります。
受講生 2,281名
難易度 初級
受講期間 無制限

お知らせ
1 件
こんにちは! KotlinとJPAを併用する際には、さらに考慮する内容がありました。
その内容は、まさにbuild.gradleに以下のようなスクリプトを追加しなければならないという点です!
plugins { id "org.jetbrains.kotlin.plugin.allopen" version "1.6.21" } // plugins, dependencies와 같은 Level (즉 build.gradle 최상단) allOpen { annotation("javax.persistence.Entity") annotation("javax.persistence.MappedSuperclass") annotation("javax.persistence.Embeddable") }その理由は次のとおりです!
ご存知のように、Kotlinは基本的にClassもfinal、関数もfinalです!
しかし、JPAを使用するときにProxy Lazy Fetchingを完全に利用するには(27講義でLazy Fetchingについての話があります!)クラスが継承可能でなければなりません!私が確認したところ、@OneToManyではLazy Fetchingが動作しますが、@ManyToOneに対してはLazy Fetchingオプションを明示的に与えても動作しませんでした。
そのため、all-open機能を使用すると、@EntityクラスはDecompileを行ったときもclassが開いているように処理しなければならず、上記のスクリプトがそのような役割を果たすようになります。
この講義では@ManyToOne Lazy Fetchingを使用していないので、対応するプラグインは講義で言及されていませんでした。 同じです!
(同じ内容の文章は<14強。KotlinとJPAを一緒に使う時の話の3通り>にもアップロードされました!)

