diff --git a/guide-projects/plus-sql-java-kotlin-guide/build.gradle b/guide-projects/plus-sql-java-kotlin-guide/build.gradle index 24e3a948..823c078e 100644 --- a/guide-projects/plus-sql-java-kotlin-guide/build.gradle +++ b/guide-projects/plus-sql-java-kotlin-guide/build.gradle @@ -1,22 +1,16 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id "spring.jdbc.plus.java-conventions" id "spring.jdbc.plus.spring-bom-conventions" id "org.jetbrains.kotlin.jvm" } -compileKotlin { - kotlinOptions { - javaParameters = true - freeCompilerArgs = ["-Xjsr305=strict"] - jvmTarget = "17" - } -} - -compileTestKotlin { - kotlinOptions { +kotlin { + compilerOptions { javaParameters = true - freeCompilerArgs = ["-Xjsr305=strict"] - jvmTarget = "17" + freeCompilerArgs.addAll("-Xjsr305=strict") + jvmTarget = JvmTarget.JVM_17 } } @@ -24,7 +18,6 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-web") implementation project(":spring-boot-starter-data-jdbc-plus-sql") implementation("org.springframework.boot:spring-boot-starter-actuator") - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("com.h2database:h2") implementation("org.projectlombok:lombok") @@ -37,6 +30,13 @@ dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.projectlombok:lombok") + + // FixtureMonkey + testImplementation("com.navercorp.fixturemonkey:fixture-monkey-starter:${fixtureMonkeyVersion}") + testImplementation("com.navercorp.fixturemonkey:fixture-monkey-jackson:${fixtureMonkeyVersion}") + testImplementation("com.navercorp.fixturemonkey:fixture-monkey-jakarta-validation:${fixtureMonkeyVersion}") + testAnnotationProcessor("org.projectlombok:lombok") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") } diff --git a/guide-projects/plus-sql-java-kotlin-guide/gradle.properties b/guide-projects/plus-sql-java-kotlin-guide/gradle.properties new file mode 100644 index 00000000..cf100b45 --- /dev/null +++ b/guide-projects/plus-sql-java-kotlin-guide/gradle.properties @@ -0,0 +1 @@ +fixtureMonkeyVersion=1.1.6 diff --git a/guide-projects/plus-sql-java-kotlin-guide/src/main/java/com/navercorp/spring/data/jdbc/plus/sql/guide/board/Board.java b/guide-projects/plus-sql-java-kotlin-guide/src/main/java/com/navercorp/spring/data/jdbc/plus/sql/guide/board/Board.java index d18ab883..e3e5fb45 100644 --- a/guide-projects/plus-sql-java-kotlin-guide/src/main/java/com/navercorp/spring/data/jdbc/plus/sql/guide/board/Board.java +++ b/guide-projects/plus-sql-java-kotlin-guide/src/main/java/com/navercorp/spring/data/jdbc/plus/sql/guide/board/Board.java @@ -18,9 +18,10 @@ package com.navercorp.spring.data.jdbc.plus.sql.guide.board; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; +import static java.util.Comparator.comparing; +import static java.util.stream.Collectors.toCollection; + +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -34,53 +35,69 @@ import org.springframework.data.relational.core.mapping.Table; import lombok.Builder; -import lombok.Getter; -import lombok.Value; -import lombok.With; import com.navercorp.spring.jdbc.plus.commons.annotations.SqlTableAlias; /** * @author Myeonghyeon Lee */ +@Builder(toBuilder = true) @Table("n_board") -@Getter -@Builder -public class Board { +public record Board( @Id - private Long id; + Long id, - private String name; + String name, @MappedCollection(idColumn = "board_id") - @Builder.Default - private Set