Merge pull request #25 from bsinno/fix_mysql_empty_in_statement

Fix mysql empty in statement
This commit is contained in:
Michael Hirsch
2016-02-05 11:07:31 +01:00
2 changed files with 9 additions and 2 deletions

View File

@@ -249,6 +249,14 @@ public class RolloutManagement {
final RolloutGroupConditions conditions) {
final Rollout savedRollout = createRollout(rollout, amountGroup);
creatingRollouts.add(savedRollout.getName());
// need to flush the entity manager here to get the ID of the rollout,
// because entity manager is set to FlushMode#Auto, entitymanager will
// flush the Target entity, due the indirect relationship to the Rollout
// entity without set an ID JPA is throwing a Invalid
// 'org.springframework.dao.InvalidDataAccessApiUsageException: During
// synchronization aect was found through a relationship that was not
// marked cascade PERSIST'
entityManager.flush();
executor.execute(() -> {
try {
final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
@@ -336,7 +344,6 @@ public class RolloutManagement {
cacheWriteNotify.rolloutGroupCreated(groupIndex, savedRollout.getId(), savedGroup.getId(),
amountGroupValidated, groupIndex);
pageIndex += groupSize;
}
savedRollout.setStatus(RolloutStatus.READY);

View File

@@ -1010,7 +1010,7 @@ public class TargetManagement {
@NotNull
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET)
public List<Target> createTargets(@NotNull final List<Target> targets) {
if (targetRepository.countByControllerIdIn(
if (!targets.isEmpty() && targetRepository.countByControllerIdIn(
targets.stream().map(target -> target.getControllerId()).collect(Collectors.toList())) > 0) {
throw new EntityAlreadyExistsException();
}