diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index 3327cd133..8b2dc60e3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -961,7 +961,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { } if (!query.isRawSql()) { query.setDefaultRawSqlIfRequired(); - if (query.isAutoTunable() && !autoTuneService.tuneQuery(query)) { + if (!query.isAutoTunable() || !autoTuneService.tuneQuery(query)) { // use deployment FetchType.LAZY/EAGER annotations // to define the 'default' select clause query.setDefaultSelectClause(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java index 06930f128..081ae5d77 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java @@ -278,7 +278,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { this.partitionMeta = deploy.getPartitionMeta(); this.tablespaceMeta = deploy.getTablespaceMeta(); this.storageEngine = deploy.getStorageEngine(); - this.autoTunable = beanFinder == null && (entityType == EntityType.ORM || entityType == EntityType.VIEW); + this.autoTunable = entityType == EntityType.ORM || entityType == EntityType.VIEW; // helper object used to derive lists of properties DeployBeanPropertyLists listHelper = new DeployBeanPropertyLists(owner, this, deploy); this.softDeleteProperty = listHelper.getSoftDeleteProperty(); diff --git a/ebean-test/src/test/java/io/ebean/xtest/plugin/SpiServerTest.java b/ebean-test/src/test/java/io/ebean/xtest/plugin/SpiServerTest.java index e5669c2dc..7fdc4b859 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/plugin/SpiServerTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/plugin/SpiServerTest.java @@ -26,7 +26,7 @@ public class SpiServerTest extends BaseTestCase { BeanType beanType = pluginApi.beanType(Customer.class); assertEquals("o_customer", beanType.baseTable()); assertNotNull(pluginApi.databasePlatform()); - assertNull(beanType.findController()); + assertNotNull(beanType.findController()); assertNotNull(beanType.persistController()); assertNull(beanType.persistListener()); assertNull(beanType.queryAdapter()); diff --git a/ebean-test/src/test/java/org/tests/model/basic/CustomerFindController.java b/ebean-test/src/test/java/org/tests/model/basic/CustomerFindController.java new file mode 100644 index 000000000..996c80d9f --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/basic/CustomerFindController.java @@ -0,0 +1,35 @@ +package org.tests.model.basic; + +import io.ebean.bean.BeanCollection; +import io.ebean.event.BeanFindController; +import io.ebean.event.BeanQueryRequest; + +/** + * @author Noemi Praml, FOCONIS AG + */ +public class CustomerFindController implements BeanFindController { + @Override + public boolean isRegisterFor(Class cls) { + return Customer.class.isAssignableFrom(cls); + } + + @Override + public boolean isInterceptFind(BeanQueryRequest request) { + return false; + } + + @Override + public T find(BeanQueryRequest request) { + return null; + } + + @Override + public boolean isInterceptFindMany(BeanQueryRequest request) { + return false; + } + + @Override + public BeanCollection findMany(BeanQueryRequest request) { + return null; + } +}