Skip to content

Commit

Permalink
Fix issue when loading associations for EmbeddedId, the assocation pa…
Browse files Browse the repository at this point in the history
…th was not calculated correctly
  • Loading branch information
agrancaric committed Feb 12, 2024
1 parent 279566d commit a557297
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private void resolveSingularAssociationList(ManagedType<?> managedType, Boolean
}

if (!association.getJavaType().equals(managedType.getJavaType())) {
resolveSingularAssociationList((ManagedType<?>) association.getType(), association.isOptional(), association.getName(), singularAssociationMap);
resolveSingularAssociationList((ManagedType<?>) association.getType(), association.isOptional(), associationName, singularAssociationMap);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;

import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createAndSaveRegistryTestEmbeddedUserGroup;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createBulkListRegistryRequest;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createDeleteEmbeddedUserGroupRequest;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createDeleteRegistryRequest;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createListRegistryRequest;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createRegistryRequest;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createRegistryTestEmbeddedUserGroup;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createRegistryTestEntity;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createRegistryTestEntityList;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createRegistryTestEntityWithParent;
Expand Down Expand Up @@ -216,7 +216,7 @@ void shouldDeleteRegistryEntity() throws Exception {
@Test
void shouldDeleteRegistryEntityWithEmbeddedId() throws Exception {
// given
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = executeInTransaction(platformTransactionManager, () -> createRegistryTestEmbeddedUserGroup(entityManager));
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = executeInTransaction(platformTransactionManager, () -> createAndSaveRegistryTestEmbeddedUserGroup(entityManager));

String requestUrl = fullUrl("delete");
DeleteRegistryRequest request = createDeleteEmbeddedUserGroupRequest(registryTestEmbeddedUserGroup.getUserGroupId());
Expand All @@ -233,7 +233,7 @@ void shouldDeleteRegistryEntityWithEmbeddedId() throws Exception {
@Test
void shouldNotFailListingRegistryWithLazyAssociationsInEmbeddedId() throws Exception {
// given
executeInTransaction(platformTransactionManager, () -> createRegistryTestEmbeddedUserGroup(entityManager));
executeInTransaction(platformTransactionManager, () -> createAndSaveRegistryTestEmbeddedUserGroup(entityManager));

String requestUrl = fullUrl("list");
ListRegistryRequest request = createListRegistryRequest(RegistryTestEmbeddedUserGroup.class.getName(), "%");
Expand All @@ -248,7 +248,7 @@ void shouldNotFailListingRegistryWithLazyAssociationsInEmbeddedId() throws Excep
@Test
void shouldNotFailUpdatingRegistryWithLazyAssociationsInEmbeddedId() throws Exception {
// given
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = executeInTransaction(platformTransactionManager, () -> createRegistryTestEmbeddedUserGroup(entityManager));
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = executeInTransaction(platformTransactionManager, () -> createAndSaveRegistryTestEmbeddedUserGroup(entityManager));

String requestUrl = fullUrl("update");
UpdateRegistryRequest request = createUpdateEmbeddedUserGroupRequest(objectMapper, registryTestEmbeddedUserGroup);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import jakarta.persistence.PersistenceContext;
import java.util.Map;

import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createAndSaveRegistryTestEmbeddedUserGroup;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createBulkListRegistryRequest;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createListRegistryRequest;
import static net.croz.nrich.registry.data.testutil.RegistryDataGeneratingUtil.createRegistryTestEmbeddedUserGroup;
Expand Down Expand Up @@ -143,6 +144,19 @@ void shouldReturnAllElementsOnEmptySearchParameters() {
assertThat(result).hasSize(5);
}

@Test
void shouldListRegistryDataWithEmbeddedId() {
// given
createAndSaveRegistryTestEmbeddedUserGroup(entityManager);
ListRegistryRequest request = createListRegistryRequest(RegistryTestEmbeddedUserGroup.class.getName(), null);

// when
Page<RegistryTestEmbeddedUserGroup> result = registryDataService.list(request);

// then
assertThat(result).isNotEmpty();
}

@Test
void shouldCreateRegistryEntity() {
// when
Expand Down Expand Up @@ -227,7 +241,7 @@ void shouldUpdateRegistryEntityWithoutAssociations() {
void shouldUpdateRegistryEntityWithEmbeddedObjectId() {
// given
String joinedPropertyUpdateValue = "updated joined property";
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = createRegistryTestEmbeddedUserGroup(entityManager);
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = createAndSaveRegistryTestEmbeddedUserGroup(entityManager);
RegistryTestEmbeddedUserGroupId registryUpdateGroupId = createRegistryTestEmbeddedUserGroupId(entityManager);
RegistryTestEmbeddedUserGroup entityData = createRegistryTestEmbeddedUserGroup(registryUpdateGroupId, joinedPropertyUpdateValue);

Expand Down Expand Up @@ -261,7 +275,7 @@ void shouldDeleteRegistryEntity() {
@Test
void shouldDeleteRegistryEntityWithEmbeddedObjectId() {
// given
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = createRegistryTestEmbeddedUserGroup(entityManager);
RegistryTestEmbeddedUserGroup registryTestEmbeddedUserGroup = createAndSaveRegistryTestEmbeddedUserGroup(entityManager);

// when
RegistryTestEmbeddedUserGroup result = registryDataService.delete(RegistryTestEmbeddedUserGroup.class.getName(), registryTestEmbeddedUserGroup.getUserGroupId());
Expand Down Expand Up @@ -299,7 +313,7 @@ void shouldDeleteRegistryEntityWithEmbeddedId() {
@Test
void shouldThrowExceptionOnInvalidPrimaryKey() {
// given
createRegistryTestEmbeddedUserGroup(entityManager);
createAndSaveRegistryTestEmbeddedUserGroup(entityManager);

// when
Throwable thrown = catchThrowable(() -> registryDataService.delete(RegistryTestEmbeddedUserGroup.class.getName(), new Object()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@
import lombok.Setter;

import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;


@Setter
@Getter
@Entity
Expand All @@ -39,4 +40,7 @@ public class RegistryTestGroupType {
@NotNull
private String name;

@ManyToOne(fetch = FetchType.LAZY)
private RegistryTestGroupType parent;

}
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ public static UpdateRegistryRequest updateRegistryRequestWithId(ObjectMapper obj
return request;
}

public static RegistryTestEmbeddedUserGroup createRegistryTestEmbeddedUserGroup(EntityManager entityManager) {
public static RegistryTestEmbeddedUserGroup createAndSaveRegistryTestEmbeddedUserGroup(EntityManager entityManager) {
RegistryTestEmbeddedUser user = createRegistryTestEmbeddedUser(entityManager);
RegistryTestEmbeddedGroup group = createRegistryTestEmbeddedGroup(entityManager);

Expand Down

0 comments on commit a557297

Please sign in to comment.