Skip to content

Commit e832aed

Browse files
committed
Progress
1 parent 7eece4b commit e832aed

File tree

4 files changed

+13
-11
lines changed

4 files changed

+13
-11
lines changed

data-hibernate-jpa/src/main/java/io/micronaut/data/hibernate/operations/HibernateJpaOperations.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import io.micronaut.core.annotation.NonNull;
2525
import io.micronaut.core.annotation.Nullable;
2626
import io.micronaut.core.convert.ConversionService;
27+
import io.micronaut.core.convert.value.ConvertibleValuesMap;
2728
import io.micronaut.core.type.Argument;
2829
import io.micronaut.core.util.ArgumentUtils;
2930
import io.micronaut.data.annotation.QueryHint;
@@ -117,8 +118,8 @@ final class HibernateJpaOperations extends AbstractHibernateOperations<Session,
117118
private final TransactionOperations<Session> transactionOperations;
118119
private ExecutorAsyncOperations asyncOperations;
119120
private ExecutorService executorService;
120-
private boolean uniqueResultOnFindOne = true;
121-
private boolean persistOrMergeOnSave = true;
121+
private final boolean uniqueResultOnFindOne;
122+
private final boolean persistOrMergeOnSave;
122123

123124
/**
124125
* Default constructor.
@@ -144,6 +145,10 @@ public HibernateJpaOperations(
144145
this.connectionOperations = connectionOperations;
145146
this.transactionOperations = transactionOperations;
146147
this.executorService = executorService;
148+
this.uniqueResultOnFindOne = new ConvertibleValuesMap<>(jpaConfiguration.getProperties())
149+
.get("uniqueResultOnFindOne", boolean.class, false);
150+
this.persistOrMergeOnSave = new ConvertibleValuesMap<>(jpaConfiguration.getProperties())
151+
.get("persistOrMergeOnSave", boolean.class, false);
147152
}
148153

149154
@Override

data-model/src/main/java/io/micronaut/data/model/Page.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ default int getTotalPages() {
7878
int size = getSize();
7979
long totalSize = getTotalSize();
8080
if (totalSize == -1) {
81-
throw new IllegalStateException("Page does not contain total count. " +
82-
"It is likely that the Pageable needs to be modified to request this information.");
81+
return -1;
8382
}
8483
return size == 0 ? 1 : (int) Math.ceil((double) totalSize / (double) size);
8584
}

data-tck/src/main/groovy/io/micronaut/data/tck/tests/AbstractPageSpec.groovy

+1-6
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,8 @@ abstract class AbstractPageSpec extends Specification {
120120
page.content.every() { it instanceof Person }
121121
!page.hasTotalSize()
122122

123-
when:
124-
page.getTotalPages()
125-
126-
then:
127-
thrown(IllegalStateException)
128-
129123
and:
124+
page.getTotalPages() == -1
130125
page.getTotalSize() == -1
131126
}
132127

jakarta-data-tck/support/src/main/java/io/micronaut/validation/tck/TckDeployableContainer.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.nio.file.Files;
4343
import java.nio.file.Path;
4444
import java.nio.file.attribute.BasicFileAttributes;
45+
import java.util.Map;
4546
import java.util.Objects;
4647

4748
@Internal
@@ -113,7 +114,6 @@ private static JavaArchive buildSupportLibrary() {
113114

114115
@Override
115116
public ProtocolMetaData deploy(Archive<?> archive) {
116-
// System.setProperty("jakarta.tck.skip.deployment", "true");
117117
if (archive instanceof LibraryContainer<?> libraryContainer) {
118118
libraryContainer.addAsLibrary(buildSupportLibrary());
119119
} else {
@@ -143,6 +143,9 @@ public ProtocolMetaData deploy(Archive<?> archive) {
143143
ReflectionUtils.setField(defautlBeanIntrospectorClass, "classLoader", shared, classLoader);
144144

145145
ApplicationContext applicationContext = ApplicationContext.builder()
146+
.properties(Map.of(
147+
"jpa.default.properties.uniqueResultOnFindOne", "true"
148+
))
146149
.classLoader(classLoader)
147150
.build()
148151
.start();

0 commit comments

Comments
 (0)