Skip to content

Commit 011e6e4

Browse files
implement loading by primary key (#69)
HIBERNATE-22
1 parent 33ce307 commit 011e6e4

26 files changed

+777
-53
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ dependencies {
132132
testImplementation(libs.bundles.test.common)
133133
testImplementation(libs.mockito.junit.jupiter)
134134
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
135+
testCompileOnly(libs.checker.qual)
135136

136137
integrationTestImplementation(libs.bundles.test.common)
137138
@Suppress("UnstableApiUsage")

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ mongo-java-driver-sync = "5.3.1"
2323
slf4j-api = "2.0.16"
2424
logback-classic = "1.5.16"
2525
mockito = "5.16.0"
26+
checker-qual = "3.49.1"
2627

2728
plugin-spotless = "7.0.2"
2829
plugin-errorprone = "4.1.0"
@@ -42,6 +43,7 @@ mongo-java-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.r
4243
sl4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j-api" }
4344
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback-classic" }
4445
mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockito" }
46+
checker-qual = { module = "org.checkerframework:checker-qual", version.ref = "checker-qual" }
4547

4648
[bundles]
4749
test-common = ["junit-jupiter", "assertj", "logback-classic"]

src/integrationTest/java/com/mongodb/hibernate/BasicCrudIntegrationTests.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,45 @@ void testDynamicUpdate() {
198198
}
199199
}
200200

201+
@Nested
202+
class SelectTests {
203+
204+
@Test
205+
void testGetByPrimaryKeyWithoutNullValueField() {
206+
var book = new Book();
207+
book.id = 1;
208+
book.author = "Marcel Proust";
209+
book.title = "In Search of Lost Time";
210+
book.publishYear = 1913;
211+
212+
sessionFactoryScope.inTransaction(session -> session.persist(book));
213+
214+
var loadedBook = sessionFactoryScope.fromTransaction(session -> session.get(Book.class, 1));
215+
assertThat(loadedBook)
216+
.isNotNull()
217+
.usingRecursiveComparison()
218+
.withStrictTypeChecking()
219+
.isEqualTo(book);
220+
}
221+
222+
@Test
223+
void testGetByPrimaryKeyWithNullValueField() {
224+
var book = new Book();
225+
book.id = 1;
226+
book.title = "Brave New World";
227+
book.publishYear = 1932;
228+
229+
sessionFactoryScope.inTransaction(session -> session.persist(book));
230+
231+
var loadedBook = sessionFactoryScope.fromTransaction(session -> session.get(Book.class, 1));
232+
assertThat(loadedBook)
233+
.isNotNull()
234+
.usingRecursiveComparison()
235+
.withStrictTypeChecking()
236+
.isEqualTo(book);
237+
}
238+
}
239+
201240
private static void assertCollectionContainsExactly(BsonDocument expectedDoc) {
202241
assertThat(mongoCollection.find()).containsExactly(expectedDoc);
203242
}

src/integrationTest/resources/logback-test.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
<logger name="org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator" level="debug" additivity="true"/>
1111
<logger name="org.hibernate.SQL" level="debug" additivity="true"/>
1212
<logger name="org.hibernate.orm.jdbc.bind" level="trace" additivity="true"/>
13+
<logger name="org.hibernate.orm.jdbc.extract" level="trace" additivity="true"/>
1314
<logger name="org.hibernate.persister.entity" level="debug" additivity="true"/>
15+
<logger name="org.hibernate.orm.sql.ast.tree" level="debug" additivity="true"/>
1416
<logger name="org.mongodb.driver" level="warn" additivity="true"/>
1517
<logger name="com.mongodb.hibernate" level="debug" additivity="true"/>
1618
<root level="info">

0 commit comments

Comments
 (0)