Open3
Quarkus, Graphql
プロジェクト作成
とりあえず最初はkotlin, graphql, gradle-kotlinあたりで開始
quarkus create app myproject --extension='kotlin,quarkus-smallrye-graphql' --gradle-kotlin-dsl
色々進捗があるんだけど、試行錯誤しすぎてスクラップに書きづらい。。
後で追加するスクラップ用メモ
- GradleじゃなくてMaven
- Quarkus、Kotlin、マルチモジュールの相性悪い
- マルチモジュール構成のコツ
- quarkus-maven-pluginは起動用プロジェクトにのみ記載
- 全部Quarkusプロジェクトになって大変
- そのままだとDIできないので、各プロジェクトにjandex-maven-pluginを追加
- 開発環境の起動方法
- mvn install clean
- これやらないと読み込めないとかで起動できない
- mvn quarkus:dev -pl app
- mvn install clean
- quarkus-maven-pluginは起動用プロジェクトにのみ記載
- OIDC設定
- Hibernate Panache設定
DBのカラム名をEntityのプロパティをスネークケースに変換したものを設定するように変更
application.properties
quarkus.hibernate-orm.physical-naming-strategy=org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
Entity
import io.quarkus.hibernate.orm.panache.kotlin.PanacheCompanion
import io.quarkus.hibernate.orm.panache.kotlin.PanacheEntity
import jakarta.persistence.Entity
import jakarta.persistence.Table
import java.time.LocalDateTime
@Entity
@Table(name = "users")
class UsersEntity : PanacheEntity() {
companion object : PanacheCompanion<UsersEntity>
lateinit var username: String
lateinit var email: String
// @Column(name = "first_name") ← これが不要になる
lateinit var firstName: String
// @Column(name = "last_name") ← これが不要になる
lateinit var lastName: String
lateinit var createdAt: LocalDateTime
lateinit var updatedAt: LocalDateTime
}