From 5d84f101106d0986d31d64ec6cc6d814009d272c Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Wed, 1 Sep 2021 09:44:31 +0200 Subject: [PATCH] NEW DeleteIdRequest can return beantype. Also provide alternative for deprecated 'getEbeanServer' --- .../java/io/ebean/event/BeanDeleteIdRequest.java | 14 ++++++++++++++ .../server/persist/DefaultPersister.java | 2 +- .../server/persist/DeleteIdRequest.java | 9 ++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/event/BeanDeleteIdRequest.java b/ebean-api/src/main/java/io/ebean/event/BeanDeleteIdRequest.java index 795886830..c86ff6c87 100644 --- a/ebean-api/src/main/java/io/ebean/event/BeanDeleteIdRequest.java +++ b/ebean-api/src/main/java/io/ebean/event/BeanDeleteIdRequest.java @@ -1,5 +1,6 @@ package io.ebean.event; +import io.ebean.Database; import io.ebean.EbeanServer; import io.ebean.Transaction; @@ -10,13 +11,26 @@ public interface BeanDeleteIdRequest { /** * Return the server processing the request. + * @deprecated use {@link #getDatabase()} */ EbeanServer getEbeanServer(); + /** + * Return the DB processing the request. + */ + default Database getDatabase() { + return getEbeanServer(); + } + /** * Return the Transaction associated with this request. */ Transaction getTransaction(); + + /** + * Returns the bean type of the bean being deleted. + */ + Class getBeanType(); /** * Returns the Id value of the bean being deleted. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java index c63b7ed9a..b21fc286c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java @@ -824,7 +824,7 @@ public final class DefaultPersister implements Persister { BeanPersistController controller = descriptor.getPersistController(); if (controller != null) { - DeleteIdRequest request = new DeleteIdRequest(server, transaction, id); + DeleteIdRequest request = new DeleteIdRequest(server, transaction, descriptor.getBeanType(), id); if (idList == null) { controller.preDelete(request); } else { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java index 760d9eda3..e98a7919e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DeleteIdRequest.java @@ -9,11 +9,13 @@ final class DeleteIdRequest implements BeanDeleteIdRequest { private final EbeanServer server; private final Transaction transaction; + private Class beanType; private Object id; - DeleteIdRequest(SpiEbeanServer server, Transaction transaction, Object id) { + DeleteIdRequest(SpiEbeanServer server, Transaction transaction, Class beanType, Object id) { this.server = server; this.transaction = transaction; + this.beanType = beanType; this.id = id; } @@ -30,6 +32,11 @@ final class DeleteIdRequest implements BeanDeleteIdRequest { public Transaction getTransaction() { return transaction; } + + @Override + public Class getBeanType() { + return beanType; + } @Override public Object getId() {