mirror of
https://github.com/google/nomulus
synced 2026-09-01 13:46:55 +00:00
Detach result objects obtained through jpaTm().query() (#1183)
* Added TransformingTypedQuery class Added class to wrap TypedQuery so that we can detach all objects on load. * Don't detach non-entity results; complete tests * Changes for review * Make non-static and call detach directly
This commit is contained in:
+30
@@ -588,6 +588,36 @@ class JpaTransactionManagerImplTest {
|
||||
.contains("Inserted/updated object reloaded: ");
|
||||
}
|
||||
|
||||
@Test
|
||||
void query_detachesResults() {
|
||||
jpaTm().transact(() -> jpaTm().insertAll(moreEntities));
|
||||
jpaTm()
|
||||
.transact(
|
||||
() ->
|
||||
jpaTm().query("FROM TestEntity", TestEntity.class).getResultList().stream()
|
||||
.forEach(e -> assertThat(jpaTm().getEntityManager().contains(e)).isFalse()));
|
||||
jpaTm()
|
||||
.transact(
|
||||
() ->
|
||||
jpaTm()
|
||||
.query("FROM TestEntity", TestEntity.class)
|
||||
.getResultStream()
|
||||
.forEach(e -> assertThat(jpaTm().getEntityManager().contains(e)).isFalse()));
|
||||
|
||||
jpaTm()
|
||||
.transact(
|
||||
() ->
|
||||
assertThat(
|
||||
jpaTm()
|
||||
.getEntityManager()
|
||||
.contains(
|
||||
jpaTm()
|
||||
.query(
|
||||
"FROM TestEntity WHERE name = 'entity1'", TestEntity.class)
|
||||
.getSingleResult()))
|
||||
.isFalse());
|
||||
}
|
||||
|
||||
private void insertPerson(int age) {
|
||||
jpaTm()
|
||||
.getEntityManager()
|
||||
|
||||
Reference in New Issue
Block a user