Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement loading by primary key #69

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
9cb4599
implement loading by primary key
NathanQingyangXu Mar 13, 2025
e646199
add testing case to cover AstMatchesEverythingFilter in AstAggregateC…
NathanQingyangXu Mar 17, 2025
fcf5e76
add unit testing case to verify affectedTableNames content
NathanQingyangXu Mar 19, 2025
e4445b3
Update src/integrationTest/java/com/mongodb/hibernate/BasicCrudIntegr…
NathanQingyangXu Mar 19, 2025
6d0985a
use get() instead of load() in loading by primary key testing case
NathanQingyangXu Mar 19, 2025
6837cdc
improve as per code review comments
NathanQingyangXu Mar 20, 2025
4f10cd6
use boolean bson type for AstProjectStageSpecification.include()
NathanQingyangXu Mar 20, 2025
2f2dd02
move AstMatchesEverythingFilterTests to its own testing case
NathanQingyangXu Mar 20, 2025
064046f
reinstate the `stage` package; improve SelectStatementMqlTranslatorTests
NathanQingyangXu Mar 20, 2025
f4d641a
change per code review comments
NathanQingyangXu Mar 20, 2025
bbc7655
add more mongo AST rendering tests
NathanQingyangXu Mar 20, 2025
e26b1a4
Merge branch 'main' into HIBERNATE-22-load-translation-new
NathanQingyangXu Mar 20, 2025
9a15a74
resolve conflict with main branch
NathanQingyangXu Mar 20, 2025
d266dd7
Update src/main/java/com/mongodb/hibernate/internal/translate/Abstrac…
NathanQingyangXu Mar 20, 2025
1040ff3
rename columnName variable to fieldPath in AbstractMqlTranslator#visi…
NathanQingyangXu Mar 20, 2025
5724937
remove unnecessary AstMatchesEverythingFilter
NathanQingyangXu Mar 20, 2025
6e14c1b
add logic to throw FeatureNotSupportedException in event of jdbcParam…
NathanQingyangXu Mar 20, 2025
2a3ccf2
add validation to SelectStatementMqlTranslator#translate()'s two para…
NathanQingyangXu Mar 20, 2025
21b832d
get rid of usage of internal fastSessionServices; keep from exposing mql
NathanQingyangXu Mar 20, 2025
31268bf
improve SelectStatementMqlTranslatorTests to make the table group mor…
NathanQingyangXu Mar 20, 2025
8381eab
remove stage package
NathanQingyangXu Mar 21, 2025
9b15ee8
Merge branch 'main' into HIBERNATE-22-load-translation-new
NathanQingyangXu Mar 21, 2025
1fb7049
Merge branch 'main' into HIBERNATE-22-load-translation-new
NathanQingyangXu Mar 21, 2025
d4bf619
Merge remote-tracking branch 'origin/HIBERNATE-22-load-translation-ne…
NathanQingyangXu Mar 21, 2025
cd59077
rename translators as per factory method names
NathanQingyangXu Mar 24, 2025
a5f72d3
refactor AstProjectStageSpecification to align with existing pattern
NathanQingyangXu Mar 24, 2025
15f56bf
add QueryOptions assertion logic to both ModelMutationMqlTranslator a…
NathanQingyangXu Mar 24, 2025
4fca70d
revert back nullness checking in AbstractMqlTranslator#visitStandardT…
NathanQingyangXu Mar 25, 2025
bf02e2d
Update src/test/java/com/mongodb/hibernate/internal/translate/mongoas…
NathanQingyangXu Mar 25, 2025
8f834b2
move logSqlAst to SelectMqlTranslator#translate() method
NathanQingyangXu Mar 25, 2025
6fa73e1
add validation of QuerySpec#hasOffsetOrFetchClause() in AbstractMqlTr…
NathanQingyangXu Mar 25, 2025
2c26854
add validation of SelectClause#isDistinct() in AbstractMqlTranslator#…
NathanQingyangXu Mar 25, 2025
d1e68a1
simplify AbstractMqlTranslator#checkQueryOptionsSupportability by usi…
NathanQingyangXu Mar 25, 2025
e7c6c80
improve AstProjectStageIncludeSpecificationTests by introducing AstNo…
NathanQingyangXu Mar 25, 2025
4a165c6
some changes per code review comments
NathanQingyangXu Mar 25, 2025
8303e6d
further changes per code review comments
NathanQingyangXu Mar 26, 2025
c779cfd
rename 'fieldPath' variable to 'fielld' in AbstractMqlTranslator#visi…
NathanQingyangXu Mar 26, 2025
59ec005
Merge branch 'main' into HIBERNATE-22-load-translation-new
NathanQingyangXu Mar 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ dependencies {
testImplementation(libs.bundles.test.common)
testImplementation(libs.mockito.junit.jupiter)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testCompileOnly(libs.checker.qual)

integrationTestImplementation(libs.bundles.test.common)
@Suppress("UnstableApiUsage")
Expand Down
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ mongo-java-driver-sync = "5.3.1"
slf4j-api = "2.0.16"
logback-classic = "1.5.16"
mockito = "5.16.0"
checker-qual = "3.49.1"

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

[bundles]
test-common = ["junit-jupiter", "assertj", "logback-classic"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,45 @@ void testDynamicUpdate() {
}
}

@Nested
class SelectTests {

@Test
void testGetByPrimaryKeyWithoutNullValueField() {
var book = new Book();
book.id = 1;
book.author = "Marcel Proust";
book.title = "In Search of Lost Time";
book.publishYear = 1913;

sessionFactoryScope.inTransaction(session -> session.persist(book));

var loadedBook = sessionFactoryScope.fromTransaction(session -> session.get(Book.class, 1));
assertThat(loadedBook)
.isNotNull()
.usingRecursiveComparison()
.withStrictTypeChecking()
.isEqualTo(book);
}

@Test
void testGetByPrimaryKeyWithNullValueField() {
var book = new Book();
book.id = 1;
book.title = "Brave New World";
book.publishYear = 1932;

sessionFactoryScope.inTransaction(session -> session.persist(book));

var loadedBook = sessionFactoryScope.fromTransaction(session -> session.get(Book.class, 1));
assertThat(loadedBook)
.isNotNull()
.usingRecursiveComparison()
.withStrictTypeChecking()
.isEqualTo(book);
}
}

private static void assertCollectionContainsExactly(BsonDocument expectedDoc) {
assertThat(mongoCollection.find()).containsExactly(expectedDoc);
}
Expand Down
2 changes: 2 additions & 0 deletions src/integrationTest/resources/logback-test.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
<logger name="org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator" level="debug" additivity="true"/>
<logger name="org.hibernate.SQL" level="debug" additivity="true"/>
<logger name="org.hibernate.orm.jdbc.bind" level="trace" additivity="true"/>
<logger name="org.hibernate.orm.jdbc.extract" level="trace" additivity="true"/>
<logger name="org.hibernate.persister.entity" level="debug" additivity="true"/>
<logger name="org.hibernate.orm.sql.ast.tree" level="debug" additivity="true"/>
<logger name="org.mongodb.driver" level="warn" additivity="true"/>
<logger name="com.mongodb.hibernate" level="debug" additivity="true"/>
<root level="info">
Expand Down
Loading