Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JJUG_CCC_2023_Exposed.pdf

H.Naka
June 04, 2023

 JJUG_CCC_2023_Exposed.pdf

JJUG CCC 2023 Spring
コンファレンスC 10:25 - 10:45

で使用したスライドです。
(仮)は永遠に(仮)です
白いページは時間の都合で入りきれず、喋らなかった補足の部分です

H.Naka

June 04, 2023
Tweet

More Decks by H.Naka

Other Decks in Technology

Transcript

  1. テーブルオブジェクト // 製造者(maker)テーブルの外部参照をもつ製品(product)テーブル object Products : IntIdTable("product", "product_id") { val

    name = varchar("name", 128) // 商品名(予約語はEscape) val makerId = reference("maker_id", Makers) // 外部参照 val price = decimal("price", 20, 5) // 価格 val summary = varchar("summary", 1024).nullable() // Null許容列 val registerDate = date("register_date") // 登録日 val createdAt = timestamp("created_at") } // ほとんどDDL!
  2. テーブルオブジェクトから生成するクエリ (メーカーごとの価格の合計を抽出する) Products .join(Makers, JoinType.INNER) .slice(Makers.id, Makers.name, Products.price.sum()) .select {Products.registerDate

    greaterEq LocalDate.now().minusWeeks(1L)} .groupBy { Makers.id } .map { // 結果を設定する } // 赤字の部分がDSLでクエリを組み立てている部分です
  3. ExposedConfigクラスの作成 // SpringBoot 3.XではGitHubに記載されている通りに書いでもダメ・・・ // ExposedAutoConfigurationを読み込んで、 // DataSourceTransactionManagerAutoConfigurationを無効にする @Import(value =

    {ExposedAutoConfiguration::class}) @EnableAutoConfiguration(exclude = {DataSourceTransactionManagerAutoConfiguration::class}) @Configuration public open class ExposedConfig