diff --git a/src/main/java/com/avaje/ebean/Ebean.java b/src/main/java/com/avaje/ebean/Ebean.java
index bd72189b7..850ea6eed 100644
--- a/src/main/java/com/avaje/ebean/Ebean.java
+++ b/src/main/java/com/avaje/ebean/Ebean.java
@@ -932,19 +932,6 @@ public final class Ebean {
return serverMgr.getDefaultServer().createSqlQuery(sql);
}
- /**
- * Create a named sql query.
- *
- * The query statement will be defined in a deployment orm xml file.
- *
- *
- * @param namedQuery
- * the name of the query
- */
- public static SqlQuery createNamedSqlQuery(String namedQuery) {
- return serverMgr.getDefaultServer().createNamedSqlQuery(namedQuery);
- }
-
/**
* Create a sql update for executing native dml statements.
*
@@ -954,10 +941,6 @@ public final class Ebean {
*
* See {@link SqlUpdate} for example usage.
*
- *
- * Where possible it would be expected practice to put the statement in a orm
- * xml file (named update) and use {@link #createNamedSqlUpdate(String)} .
- *
*/
public static SqlUpdate createSqlUpdate(String sql) {
return serverMgr.getDefaultServer().createSqlUpdate(sql);
@@ -972,144 +955,6 @@ public final class Ebean {
return serverMgr.getDefaultServer().createCallableSql(sql);
}
- /**
- * Create a named sql update.
- *
- * The statement (an Insert Update or Delete statement) will be defined in a
- * deployment orm xml file.
- *
- */
- public static SqlUpdate createNamedSqlUpdate(String namedQuery) {
- return serverMgr.getDefaultServer().createNamedSqlUpdate(namedQuery);
- }
-
- /**
- * Return a named Query that will have defined fetch paths, predicates etc.
- *
- * The query is created from a statement that will be defined in a deployment
- * orm xml file or NamedQuery annotations. The query will typically already
- * define fetch paths, predicates, order by clauses etc so often you will just
- * need to bind required parameters and then execute the query.
- *
- *
- * @param beanType
- * the class of entity to be fetched
- * @param namedQuery
- * the name of the query
- */
- public static Query createNamedQuery(Class beanType, String namedQuery) {
-
- return serverMgr.getDefaultServer().createNamedQuery(beanType, namedQuery);
- }
-
- /**
- * Create a query using the query language.
- *
- * Note that you are allowed to add additional clauses using where() as well
- * as use fetch() and setOrderBy() after the query has been created.
- *
- *
- * Note that this method signature used to map to named queries and that has
- * moved to {@link #createNamedQuery(Class, String)}.
- *
- *
- *
{@code
- *
- * String q = "find order fetch details where status = :st";
- *
- * List newOrders = Ebean.>findOrder.class, q)
- * .setParameter("st", Order.Status.NEW)
- * .findList();
- *
- * }
- *
- * @param query
- * the object query
- */
- public static Query createQuery(Class beanType, String query) {
- return serverMgr.getDefaultServer().createQuery(beanType, query);
- }
-
- /**
- * Create a named orm update. The update statement is specified via the
- * NamedUpdate annotation.
- *
- * The orm update differs from the SqlUpdate in that it uses the bean name and
- * bean property names rather than table and column names.
- *
- *
- * Note that named update statements can be specified in raw sql (with column
- * and table names) or using bean name and bean property names. This can be
- * specified with the isSql flag.
- *
- *
- * Example named updates:
- *
- *
- *
{@code
- * package app.data;
- *
- * import ...
- *
- * @NamedUpdates(value = {
- * @NamedUpdate( name = "setTitle",
- * isSql = false,
- * notifyCache = false,
- * update = "update topic set title = :title, postCount = :postCount where id = :id"),
- * @NamedUpdate( name = "setPostCount",
- * notifyCache = false,
- * update = "update f_topic set post_count = :postCount where id = :id"),
- * @NamedUpdate( name = "incrementPostCount",
- * notifyCache = false,
- * isSql = false,
- * update = "update Topic set postCount = postCount + 1 where id = :id") })
- * @Entity
- * @Table(name = "f_topic")
- * public class Topic { ...
- *
- * }
- */
- public static Update createNamedUpdate(Class beanType, String namedUpdate) {
-
- return serverMgr.getDefaultServer().createNamedUpdate(beanType, namedUpdate);
- }
-
/**
* Create a orm update where you will supply the insert/update or delete
* statement (rather than using a named one that is already defined using the
diff --git a/src/main/java/com/avaje/ebean/EbeanServer.java b/src/main/java/com/avaje/ebean/EbeanServer.java
index 188670427..e5b21a1e6 100644
--- a/src/main/java/com/avaje/ebean/EbeanServer.java
+++ b/src/main/java/com/avaje/ebean/EbeanServer.java
@@ -179,52 +179,6 @@ public interface EbeanServer {
*/
CsvReader createCsvReader(Class beanType);
- /**
- * Return a named Query that will have defined fetch paths, predicates etc.
- *
- * The query is created from a statement that will be defined in a deployment
- * orm xml file or NamedQuery annotations. The query will typically already
- * define fetch paths, predicates, order by clauses etc so often you will just
- * need to bind required parameters and then execute the query.
- *
- */
- Query createNamedQuery(Class beanType, String namedQuery);
-
- /**
- * Create a query using the query language.
- *
- * Note that you are allowed to add additional clauses using where() as well
- * as use fetch() and setOrderBy() after the query has been created.
- *
- *
- * Note that this method signature used to map to named queries and that has
- * moved to {@link #createNamedQuery(Class, String)}.
- *
- *
- * @param query
- * the object query
- */
- Query createQuery(Class beanType, String query);
-
/**
* Create a query for an entity bean and synonym for {@link #find(Class)}.
*
@@ -344,62 +298,6 @@ public interface EbeanServer {
*/
void sort(List list, String sortByClause);
- /**
- * Create a named orm update. The update statement is specified via the
- * NamedUpdate annotation.
- *
- * The orm update differs from the SqlUpdate in that it uses the bean name and
- * bean property names rather than table and column names.
- *
- *
- * Note that named update statements can be specified in raw sql (with column
- * and table names) or using bean name and bean property names. This can be
- * specified with the isSql flag.
- *
- *
- * Example named updates:
- *
- *
- *
{@code
- * package app.data;
- *
- * import ...
- *
- * @NamedUpdates(value = {
- * @NamedUpdate( name = "setTitle",
- * isSql = false,
- * notifyCache = false,
- * update = "update topic set title = :title, postCount = :postCount where id = :id"),
- * @NamedUpdate( name = "setPostCount",
- * notifyCache = false,
- * update = "update f_topic set post_count = :postCount where id = :id"),
- * @NamedUpdate( name = "incrementPostCount",
- * notifyCache = false,
- * isSql = false,
- * update = "update Topic set postCount = postCount + 1 where id = :id") })
- * @Entity
- * @Table(name = "f_topic")
- * public class Topic { ...
- *
- * }
- */
- Update createNamedUpdate(Class beanType, String namedUpdate);
-
/**
* Create a orm update where you will supply the insert/update or delete
* statement (rather than using a named one that is already defined using the
@@ -441,17 +339,6 @@ public interface EbeanServer {
*/
SqlQuery createSqlQuery(String sql);
- /**
- * Create a named sql query.
- *
- * The query statement will be defined in a deployment orm xml file.
- *
- *
- * @param namedQuery
- * the name of the query
- */
- SqlQuery createNamedSqlQuery(String namedQuery);
-
/**
* Create a sql update for executing native dml statements.
*
@@ -461,10 +348,6 @@ public interface EbeanServer {
*
* See {@link SqlUpdate} for example usage.
*
- *
- * Where possible it would be expected practice to put the statement in a orm
- * xml file (named update) and use {@link #createNamedSqlUpdate(String)} .
- *
*/
SqlUpdate createSqlUpdate(String sql);
@@ -473,27 +356,6 @@ public interface EbeanServer {
*/
CallableSql createCallableSql(String callableSql);
- /**
- * Create a named sql update.
- *
- * The statement (an Insert Update or Delete statement) will be defined in a
- * deployment orm xml file.
- *
- */
- SqlUpdate createNamedSqlUpdate(String namedQuery);
-
/**
* Register a TransactionCallback on the currently active transaction.
*
diff --git a/src/main/java/com/avaje/ebean/Model.java b/src/main/java/com/avaje/ebean/Model.java
index 782cc2e34..c9cc59db9 100644
--- a/src/main/java/com/avaje/ebean/Model.java
+++ b/src/main/java/com/avaje/ebean/Model.java
@@ -843,15 +843,6 @@ public abstract class Model {
return query().setId(id);
}
- /**
- * Create and return a new query using the OQL.
- *
- * Equivalent to {@link EbeanServer#createQuery(Class, String)}
- */
- public Query setQuery(String oql) {
- return db().createQuery(type, oql);
- }
-
/**
* Create and return a new query based on the RawSql.
*
- * The update can either be a sql insert,update or delete statement with tables
- * and columns etc or the equivalent statement but with table names and columns
- * expressed as bean types and bean properties.
- *
- */
-@Target({ ElementType.TYPE })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface NamedUpdate {
-
- /**
- * The name of the update.
- */
- String name();
-
- /**
- * The insert, update or delete statement.
- */
- String update();
-
- /**
- * Set this to false if you do not want the cache to be notified. If true the
- * cache will invalidate appropriate objects from the cache (after a
- * successful transaction commit).
- */
- boolean notifyCache() default true;
-
-}
diff --git a/src/main/java/com/avaje/ebean/annotation/NamedUpdates.java b/src/main/java/com/avaje/ebean/annotation/NamedUpdates.java
deleted file mode 100644
index 3a8992604..000000000
--- a/src/main/java/com/avaje/ebean/annotation/NamedUpdates.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.avaje.ebean.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Holds an array of named Update statements for a particular entity bean type.
- */
-@Target({ ElementType.TYPE })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface NamedUpdates {
-
- /**
- * An array of named updates.
- */
- NamedUpdate[] value();
-
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/api/SpiQuery.java b/src/main/java/com/avaje/ebeaninternal/api/SpiQuery.java
index 243c7eb4a..a74fcc50e 100644
--- a/src/main/java/com/avaje/ebeaninternal/api/SpiQuery.java
+++ b/src/main/java/com/avaje/ebeaninternal/api/SpiQuery.java
@@ -436,11 +436,6 @@ public interface SpiQuery extends Query {
*/
void setUsageProfiling(boolean usageProfiling);
- /**
- * Return the query name.
- */
- String getName();
-
/**
* Prepare the query which prepares sub-query expressions and calculates
* and returns the query plan key.
@@ -464,12 +459,6 @@ public interface SpiQuery extends Query {
*/
HashQuery queryHash();
- /**
- * Return true if this is a query based on a SqlSelect rather than
- * generated.
- */
- boolean isSqlSelect();
-
/**
* Return true if this is a RawSql query.
*/
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java
index 284864e87..cb5839c34 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java
@@ -114,8 +114,7 @@ public class DefaultContainer implements SpiContainer {
SpiBackgroundExecutor executor = createBackgroundExecutor(serverConfig);
ServerCacheManager cacheManager = getCacheManager(online, serverConfig, executor);
- XmlConfig xmlConfig = new XmlConfigLoader(null).load();
- InternalConfiguration c = new InternalConfiguration(xmlConfig, clusterManager, cacheManager, executor, serverConfig, bootupClasses);
+ InternalConfiguration c = new InternalConfiguration(clusterManager, cacheManager, executor, serverConfig, bootupClasses);
DefaultServer server = new DefaultServer(c, cacheManager);
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
index 3c346ce43..657277c48 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
@@ -38,9 +38,6 @@ import com.avaje.ebeaninternal.server.core.timezone.DataTimeZone;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptor;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager;
import com.avaje.ebeaninternal.server.deploy.BeanProperty;
-import com.avaje.ebeaninternal.server.deploy.DNativeQuery;
-import com.avaje.ebeaninternal.server.deploy.DeployNamedQuery;
-import com.avaje.ebeaninternal.server.deploy.DeployNamedUpdate;
import com.avaje.ebeaninternal.server.deploy.InheritInfo;
import com.avaje.ebeaninternal.server.el.ElFilter;
import com.avaje.ebeaninternal.server.lib.ShutdownManager;
@@ -851,25 +848,6 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
beanDescriptor.sort(list, sortByClause);
}
- public Query createQuery(Class beanType) throws PersistenceException {
- return createQuery(beanType, null);
- }
-
- public Query createNamedQuery(Class beanType, String namedQuery) throws PersistenceException {
-
- BeanDescriptor desc = getBeanDescriptor(beanType);
- if (desc == null) {
- throw new PersistenceException("Is " + beanType.getName() + " an Entity Bean? BeanDescriptor not found?");
- }
- DeployNamedQuery deployQuery = desc.getNamedQuery(namedQuery);
- if (deployQuery == null) {
- throw new PersistenceException("named query " + namedQuery + " was not found for " + desc.getFullName());
- }
-
- // this will parse the query
- return new DefaultOrmQuery(desc, this, expressionFactory, deployQuery);
- }
-
@Override
public Set validateQuery(Query query) {
@@ -901,38 +879,12 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
return createQuery(beanType);
}
- public Query createQuery(Class beanType, String query) {
+ public Query createQuery(Class beanType) {
BeanDescriptor desc = getBeanDescriptor(beanType);
if (desc == null) {
throw new PersistenceException(beanType.getName() + " is NOT an Entity Bean registered with this server?");
}
- switch (desc.getEntityType()) {
- case SQL:
- if (query != null) {
- throw new PersistenceException("You must used Named queries for this Entity " + desc.getFullName());
- }
- // use the "default" SqlSelect
- DeployNamedQuery defaultSqlSelect = desc.getNamedQuery("default");
- return new DefaultOrmQuery(desc, this, expressionFactory, defaultSqlSelect);
-
- default:
- return new DefaultOrmQuery(desc, this, expressionFactory, query);
- }
- }
-
- public Update createNamedUpdate(Class beanType, String namedUpdate) {
- BeanDescriptor> desc = getBeanDescriptor(beanType);
- if (desc == null) {
- String m = beanType.getName() + " is NOT an Entity Bean registered with this server?";
- throw new PersistenceException(m);
- }
-
- DeployNamedUpdate deployUpdate = desc.getNamedUpdate(namedUpdate);
- if (deployUpdate == null) {
- throw new PersistenceException("named update " + namedUpdate + " was not found for " + desc.getFullName());
- }
-
- return new DefaultOrmUpdate(beanType, this, desc.getBaseTable(), deployUpdate);
+ return new DefaultOrmQuery(desc, this, expressionFactory);
}
public Update createUpdate(Class beanType, String ormUpdate) {
@@ -949,14 +901,6 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
return new DefaultRelationalQuery(this, sql);
}
- public SqlQuery createNamedSqlQuery(String namedQuery) {
- DNativeQuery nq = beanDescriptorManager.getNativeQuery(namedQuery);
- if (nq == null) {
- throw new PersistenceException("SqlQuery " + namedQuery + " not found.");
- }
- return new DefaultRelationalQuery(this, nq.getQuery());
- }
-
public SqlUpdate createSqlUpdate(String sql) {
return new DefaultSqlUpdate(this, sql);
}
@@ -965,14 +909,6 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
return new DefaultCallableSql(this, sql);
}
- public SqlUpdate createNamedSqlUpdate(String namedQuery) {
- DNativeQuery nq = beanDescriptorManager.getNativeQuery(namedQuery);
- if (nq == null) {
- throw new PersistenceException("SqlUpdate " + namedQuery + " not found.");
- }
- return new DefaultSqlUpdate(this, nq.getQuery());
- }
-
public T find(Class beanType, Object uid) {
return find(beanType, uid, null);
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java b/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java
index 214247867..ec0be128b 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java
@@ -23,17 +23,15 @@ import com.avaje.ebeaninternal.server.changelog.DefaultChangeLogPrepare;
import com.avaje.ebeaninternal.server.changelog.DefaultChangeLogRegister;
import com.avaje.ebeaninternal.server.cluster.ClusterManager;
import com.avaje.ebeaninternal.server.core.timezone.CloneDataTimeZone;
+import com.avaje.ebeaninternal.server.core.timezone.DataTimeZone;
import com.avaje.ebeaninternal.server.core.timezone.NoDataTimeZone;
import com.avaje.ebeaninternal.server.core.timezone.SimpleDataTimeZone;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager;
-import com.avaje.ebeaninternal.server.deploy.DeployOrmXml;
import com.avaje.ebeaninternal.server.deploy.generatedproperty.GeneratedPropertyFactory;
import com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties;
import com.avaje.ebeaninternal.server.deploy.parse.DeployInherit;
import com.avaje.ebeaninternal.server.deploy.parse.DeployUtil;
import com.avaje.ebeaninternal.server.expression.DefaultExpressionFactory;
-import com.avaje.ebeaninternal.server.core.timezone.DataTimeZone;
-import org.avaje.datasource.DataSourcePool;
import com.avaje.ebeaninternal.server.persist.Binder;
import com.avaje.ebeaninternal.server.persist.DefaultPersister;
import com.avaje.ebeaninternal.server.query.CQueryEngine;
@@ -56,6 +54,7 @@ import com.avaje.ebeanservice.docstore.api.DocStoreIntegration;
import com.avaje.ebeanservice.docstore.api.DocStoreUpdateProcessor;
import com.avaje.ebeanservice.docstore.none.NoneDocStoreFactory;
import com.fasterxml.jackson.core.JsonFactory;
+import org.avaje.datasource.DataSourcePool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -79,8 +78,6 @@ public class InternalConfiguration {
private final DeployInherit deployInherit;
- private final DeployOrmXml deployOrmXml;
-
private final TypeManager typeManager;
private final DataTimeZone dataTimeZone;
@@ -103,8 +100,6 @@ public class InternalConfiguration {
private final SpiBackgroundExecutor backgroundExecutor;
- private final XmlConfig xmlConfig;
-
private final JsonFactory jsonFactory;
private final DocStoreFactory docStoreFactory;
@@ -114,13 +109,12 @@ public class InternalConfiguration {
*/
private final List plugins = new ArrayList();
- public InternalConfiguration(XmlConfig xmlConfig, ClusterManager clusterManager,
+ public InternalConfiguration(ClusterManager clusterManager,
ServerCacheManager cacheManager, SpiBackgroundExecutor backgroundExecutor,
ServerConfig serverConfig, BootupClasses bootupClasses) {
this.docStoreFactory = initDocStoreFactory(serverConfig.service(DocStoreFactory.class));
this.jsonFactory = serverConfig.getJsonFactory();
- this.xmlConfig = xmlConfig;
this.clusterManager = clusterManager;
this.backgroundExecutor = backgroundExecutor;
this.cacheManager = cacheManager;
@@ -131,7 +125,6 @@ public class InternalConfiguration {
this.expressionFactory = initExpressionFactory(serverConfig, databasePlatform);
this.typeManager = new DefaultTypeManager(serverConfig, bootupClasses);
- this.deployOrmXml = new DeployOrmXml();
this.deployInherit = new DeployInherit(bootupClasses);
this.deployCreateProperties = new DeployCreateProperties(typeManager);
@@ -264,10 +257,6 @@ public class InternalConfiguration {
return new DJsonContext(server, jsonFactory, typeManager);
}
- public XmlConfig getXmlConfig() {
- return xmlConfig;
- }
-
public AutoTuneService createAutoTuneService(SpiEbeanServer server) {
return AutoTuneServiceFactory.create(server, serverConfig);
}
@@ -316,10 +305,6 @@ public class InternalConfiguration {
return deployInherit;
}
- public DeployOrmXml getDeployOrmXml() {
- return deployOrmXml;
- }
-
public DeployCreateProperties getDeployCreateProperties() {
return deployCreateProperties;
}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java b/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java
index 428dad377..6cfc2822c 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java
@@ -174,14 +174,6 @@ public final class OrmQueryRequest extends BeanRequest implements BeanQueryRe
}
}
- /**
- * Return true if this is a query using generated sql. If false this query
- * will use raw sql (Entity bean based on raw sql select).
- */
- public boolean isSqlSelect() {
- return query.isSqlSelect() && query.getRawSql() == null;
- }
-
/**
* Return the PersistenceContext used for this request.
*/
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/XmlConfig.java b/src/main/java/com/avaje/ebeaninternal/server/core/XmlConfig.java
deleted file mode 100644
index 7f97c0ef3..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/core/XmlConfig.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.avaje.ebeaninternal.server.core;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.avaje.ebeaninternal.server.lib.util.Dnode;
-
-/**
- * Holds the orm.xml and ebean-orm.xml deployment information.
- *
- * @author rbygrave
- */
-public class XmlConfig {
-
- private final List ebeanOrmXml;
- private final List ormXml;
- private final List allXml;
-
- public XmlConfig(List ormXml, List ebeanOrmXml){
- this.ormXml = ormXml;
- this.ebeanOrmXml = ebeanOrmXml;
- this.allXml = new ArrayList(ormXml.size() + ebeanOrmXml.size());
- allXml.addAll(ormXml);
- allXml.addAll(ebeanOrmXml);
- }
-
- public List getEbeanOrmXml() {
- return ebeanOrmXml;
- }
-
- public List getOrmXml() {
- return ormXml;
- }
-
- public List find(List entityXml, String element) {
- ArrayList hits = new ArrayList();
- for (int i = 0; i < entityXml.size(); i++) {
- hits.addAll(entityXml.get(i).findAll(element, 1));
- }
- return hits;
- }
-
- /**
- * Find the deployment xml for a given entity.
- *
- * This searches all the orm.xml and ebean-orm.xml files.
- *
- */
- public List findEntityXml(String className) {
-
- ArrayList hits = new ArrayList(2);
-
- for (Dnode ormXml : allXml) {
- Dnode entityMappings = ormXml.find("entity-mappings");
-
- List entities = entityMappings.findAll("entity", "class", className, 1);
- if (entities.size() == 1) {
- hits.add(entities.get(0));
- }
- }
-
- return hits;
- }
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/XmlConfigLoader.java b/src/main/java/com/avaje/ebeaninternal/server/core/XmlConfigLoader.java
deleted file mode 100644
index b5e3006f1..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/core/XmlConfigLoader.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.avaje.ebeaninternal.server.core;
-
-import com.avaje.ebeaninternal.server.lib.util.Dnode;
-import com.avaje.ebeaninternal.server.lib.util.DnodeReader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-
-/**
- * Used to read the orm.xml and ebean-orm.xml configuration files.
- *
- * @author rbygrave
- * @author Richard Vowles - http://plus.google.com/RichardVowles
- */
-public class XmlConfigLoader {
-
- private static final Logger logger = LoggerFactory.getLogger(XmlConfigLoader.class);
-
- private final ClassLoader classLoader;
-
- public XmlConfigLoader(ClassLoader classLoader) {
-
- if (classLoader == null) {
- classLoader = getClass().getClassLoader();
- }
-
- this.classLoader = classLoader;
- }
-
- public XmlConfig load() {
- List ormXml = search("META-INF/orm.xml");
- List ebeanOrmXml = search("META-INF/ebean-orm.xml");
-
- return new XmlConfig(ormXml, ebeanOrmXml);
- }
-
- public List search(String resourceName) {
- ArrayList xmlList = new ArrayList();
-
- try {
- Enumeration resources = classLoader.getResources(resourceName);
-
- while (resources.hasMoreElements()) {
- URL url = resources.nextElement();
-
- InputStream is = url.openStream();
- processInputStream(xmlList, is);
- is.close();
- }
- } catch (IOException e) {
- logger.error("Unable to find resources {}", resourceName);
- }
-
- return xmlList;
- }
-
- private void processInputStream(ArrayList xmlList, InputStream is) throws IOException {
-
- DnodeReader reader = new DnodeReader();
- Dnode xmlDoc = reader.parseXml(is);
- is.close();
-
- xmlList.add(xmlDoc);
- }
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java
index d5c79d9e2..f08c3d3ee 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java
@@ -347,10 +347,6 @@ public class BeanDescriptor implements MetaBeanInfo, BeanType {
*/
private final String fullName;
- private final Map namedQueries;
-
- private final Map namedUpdates;
-
/**
* Flag used to determine if saves can be skipped.
*/
@@ -414,9 +410,6 @@ public class BeanDescriptor implements MetaBeanInfo, BeanType {
this.beanType = deploy.getBeanType();
this.rootBeanType = PersistenceContextUtil.root(beanType);
this.prototypeEntityBean = createPrototypeEntityBean(beanType);
-
- this.namedQueries = deploy.getNamedQueries();
- this.namedUpdates = deploy.getNamedUpdates();
this.inheritInfo = deploy.getInheritInfo();
@@ -703,14 +696,6 @@ public class BeanDescriptor implements MetaBeanInfo, BeanType {
softDeleteByIdSql = null;
softDeleteByIdInSql = null;
}
-
- if (!isEmbedded()) {
- // parse every named update up front into sql dml
- for (DeployNamedUpdate namedUpdate : namedUpdates.values()) {
- DeployUpdateParser parser = new DeployUpdateParser(this);
- namedUpdate.initialise(parser);
- }
- }
}
/**
@@ -1532,24 +1517,6 @@ public class BeanDescriptor implements MetaBeanInfo, BeanType {
return idBinder.getBindValues(idValue);
}
- /**
- * Return a named query.
- */
- public DeployNamedQuery getNamedQuery(String name) {
- return namedQueries.get(name);
- }
-
- public void addNamedQuery(DeployNamedQuery deployNamedQuery) {
- namedQueries.put(deployNamedQuery.getName(), deployNamedQuery);
- }
-
- /**
- * Return a named update.
- */
- public DeployNamedUpdate getNamedUpdate(String name) {
- return namedUpdates.get(name);
- }
-
@Override
@SuppressWarnings("unchecked")
public T createBean() {
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java
index 75b859f29..bc2764f44 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java
@@ -2,9 +2,6 @@ package com.avaje.ebeaninternal.server.deploy;
import com.avaje.ebean.BackgroundExecutor;
import com.avaje.ebean.Model;
-import com.avaje.ebean.RawSql;
-import com.avaje.ebean.RawSqlBuilder;
-import com.avaje.ebeaninternal.api.ConcurrencyMode;
import com.avaje.ebean.bean.BeanCollection;
import com.avaje.ebean.bean.EntityBean;
import com.avaje.ebean.cache.ServerCacheManager;
@@ -15,20 +12,20 @@ import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.config.dbplatform.DatabasePlatform;
import com.avaje.ebean.config.dbplatform.DbHistorySupport;
import com.avaje.ebean.config.dbplatform.DbIdentity;
-import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
import com.avaje.ebean.config.dbplatform.IdType;
+import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
import com.avaje.ebean.event.changelog.ChangeLogFilter;
import com.avaje.ebean.event.changelog.ChangeLogListener;
import com.avaje.ebean.event.changelog.ChangeLogPrepare;
import com.avaje.ebean.event.changelog.ChangeLogRegister;
import com.avaje.ebean.plugin.BeanType;
+import com.avaje.ebeaninternal.api.ConcurrencyMode;
import com.avaje.ebeaninternal.api.SpiEbeanServer;
import com.avaje.ebeaninternal.api.TransactionEventTable;
import com.avaje.ebeaninternal.server.core.BootupClasses;
import com.avaje.ebeaninternal.server.core.InternString;
import com.avaje.ebeaninternal.server.core.InternalConfiguration;
import com.avaje.ebeaninternal.server.core.Message;
-import com.avaje.ebeaninternal.server.core.XmlConfig;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptor.EntityType;
import com.avaje.ebeaninternal.server.deploy.id.IdBinder;
import com.avaje.ebeaninternal.server.deploy.id.IdBinderEmbedded;
@@ -46,8 +43,6 @@ import com.avaje.ebeaninternal.server.deploy.parse.DeployInherit;
import com.avaje.ebeaninternal.server.deploy.parse.DeployUtil;
import com.avaje.ebeaninternal.server.deploy.parse.ReadAnnotations;
import com.avaje.ebeaninternal.server.deploy.parse.TransientProperties;
-import com.avaje.ebeaninternal.server.idgen.UuidIdGenerator;
-import com.avaje.ebeaninternal.server.lib.util.Dnode;
import com.avaje.ebeaninternal.server.properties.BeanPropertiesReader;
import com.avaje.ebeaninternal.server.properties.BeanPropertyInfo;
import com.avaje.ebeaninternal.server.properties.BeanPropertyInfoFactory;
@@ -109,8 +104,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
private final DeployCreateProperties createProperties;
- private final DeployOrmXml deployOrmXml;
-
private final BeanManagerFactory beanManagerFactory;
private final ServerConfig serverConfig;
@@ -163,8 +156,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
private final IdBinderFactory idBinderFactory;
- private final XmlConfig xmlConfig;
-
private final BeanLifecycleAdapterFactory beanLifecycleAdapterFactory;
private final boolean eagerFetchLobs;
@@ -190,7 +181,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
this.serverName = InternString.intern(serverConfig.getName());
this.cacheManager = config.getCacheManager();
this.docStoreFactory = config.getDocStoreFactory();
- this.xmlConfig = config.getXmlConfig();
this.dbSequenceBatchSize = serverConfig.getDatabaseSequenceBatchSize();
this.backgroundExecutor = config.getBackgroundExecutor();
this.dataSource = serverConfig.getDataSource();
@@ -207,7 +197,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
this.namingConvention = serverConfig.getNamingConvention();
this.dbIdentity = config.getDatabasePlatform().getDbIdentity();
this.deplyInherit = config.getDeployInherit();
- this.deployOrmXml = config.getDeployOrmXml();
this.deployUtil = config.getDeployUtil();
this.beanManagerFactory = new BeanManagerFactory(config.getDatabasePlatform());
@@ -316,10 +305,8 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
readEntityBeanTable();
readEntityDeploymentAssociations();
readInheritedIdGenerators();
-
// creates the BeanDescriptors
readEntityRelationships();
- readRawSqlQueries();
List> list = new ArrayList>(descMap.values());
Collections.sort(list, beanDescComparator);
@@ -555,10 +542,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
return beanManagerMap.get(beanClassName);
}
- public DNativeQuery getNativeQuery(String name) {
- return deployOrmXml.getNativeQuery(name);
- }
-
/**
* Create the BeanControllers, BeanFinders and BeanListeners.
*/
@@ -679,25 +662,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
return new BeanTable(beanTable, this);
}
- /**
- * Parse the named Raw Sql queries using BeanDescriptor.
- */
- private void readRawSqlQueries() {
-
- for (DeployBeanInfo> info : deplyInfoMap.values()) {
-
- DeployBeanDescriptor> deployDesc = info.getDescriptor();
- BeanDescriptor> desc = getBeanDescriptor(deployDesc.getBeanType());
-
- for (DRawSqlMeta rawSqlMeta : deployDesc.getRawSqlMeta()) {
- if (rawSqlMeta.getQuery() != null) {
- DeployNamedQuery nq = new DRawSqlSelectBuilder(namingConvention, desc, rawSqlMeta).parse();
- desc.addNamedQuery(nq);
- }
- }
- }
- }
-
@SuppressWarnings({"unchecked", "rawtypes"})
private void readEntityRelationships() {
@@ -1148,8 +1112,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
readAnnotations.readAssociations(info, this);
- readXml(desc);
-
if (EntityType.SQL == desc.getEntityType()) {
desc.setBaseTable(null, null, null);
}
@@ -1271,127 +1233,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap {
}
}
- private void readXml(DeployBeanDescriptor> deployDesc) {
-
- List eXml = xmlConfig.findEntityXml(deployDesc.getFullName());
- readXmlRawSql(deployDesc, eXml);
-
- Dnode entityXml = deployOrmXml.findEntityDeploymentXml(deployDesc.getFullName());
-
- if (entityXml != null) {
- readXmlNamedQueries(deployDesc, entityXml);
- readXmlSql(deployDesc, entityXml);
- }
- }
-
- /**
- * Read sql-select (FUTURE: additionally sql-insert, sql-update, sql-delete).
- * If found this entity bean is based on raw sql.
- */
- private void readXmlSql(DeployBeanDescriptor> deployDesc, Dnode entityXml) {
-
- List sqlSelectList = entityXml.findAll("sql-select", entityXml.getLevel() + 1);
- for (int i = 0; i < sqlSelectList.size(); i++) {
- Dnode sqlSelect = sqlSelectList.get(i);
- readSqlSelect(deployDesc, sqlSelect);
- }
- }
-
- private String findContent(Dnode node, String nodeName) {
- Dnode found = node.find(nodeName);
- if (found != null) {
- return found.getNodeContent();
- } else {
- return null;
- }
- }
-
- private void readSqlSelect(DeployBeanDescriptor> deployDesc, Dnode sqlSelect) {
-
- String name = sqlSelect.getStringAttr("name", "default");
- String extend = sqlSelect.getStringAttr("extend", null);
- String queryDebug = sqlSelect.getStringAttr("debug", null);
- boolean debug = (queryDebug != null && queryDebug.equalsIgnoreCase("true"));
-
- // the raw sql select
- String query = findContent(sqlSelect, "query");
- String where = findContent(sqlSelect, "where");
- String having = findContent(sqlSelect, "having");
- String columnMapping = findContent(sqlSelect, "columnMapping");
-
- DRawSqlMeta m = new DRawSqlMeta(name, extend, query, debug, where, having, columnMapping);
-
- deployDesc.add(m);
-
- }
-
- private void readXmlRawSql(DeployBeanDescriptor> deployDesc, List entityXml) {
-
- List rawSqlQueries = xmlConfig.find(entityXml, "raw-sql");
- for (int i = 0; i < rawSqlQueries.size(); i++) {
- Dnode rawSqlDnode = rawSqlQueries.get(i);
- String name = rawSqlDnode.getAttribute("name");
- if (isEmpty(name)) {
- throw new IllegalStateException("raw-sql for " + deployDesc.getFullName() + " missing name attribute");
- }
- Dnode queryNode = rawSqlDnode.find("query");
- if (queryNode == null) {
- throw new IllegalStateException("raw-sql for " + deployDesc.getFullName() + " missing query element");
- }
- String sql = queryNode.getNodeContent();
- if (isEmpty(sql)) {
- throw new IllegalStateException("raw-sql for " + deployDesc.getFullName() + " has empty sql in the query element?");
- }
-
- List columnMappings = rawSqlDnode.findAll("columnMapping", 1);
-
- RawSqlBuilder rawSqlBuilder = RawSqlBuilder.parse(sql);
- for (int j = 0; j < columnMappings.size(); j++) {
- Dnode cm = columnMappings.get(j);
- String column = cm.getAttribute("column");
- String property = cm.getAttribute("property");
- rawSqlBuilder.columnMapping(column, property);
- }
- RawSql rawSql = rawSqlBuilder.create();
-
- DeployNamedQuery namedQuery = new DeployNamedQuery(name, rawSql);
- deployDesc.add(namedQuery);
- }
- }
-
- private boolean isEmpty(String s) {
- return s == null || s.trim().length() == 0;
- }
-
- /**
- * Read named queries for this bean type.
- */
- private void readXmlNamedQueries(DeployBeanDescriptor> deployDesc, Dnode entityXml) {
-
- // look for named-query...
- List namedQueries = entityXml.findAll("named-query", 1);
-
- for (Dnode namedQueryXml : namedQueries) {
-
- String name = namedQueryXml.getAttribute("name");
- Dnode query = namedQueryXml.find("query");
- if (query == null) {
- logger.warn("orm.xml " + deployDesc.getFullName() + " named-query missing query element?");
-
- } else {
- String oql = query.getNodeContent();
- // TODO: QueryHints not read from xml yet
- if (name == null || oql == null) {
- logger.warn("orm.xml " + deployDesc.getFullName() + " named-query has no query content?");
- } else {
- // add the named query
- DeployNamedQuery q = new DeployNamedQuery(name, oql, null);
- deployDesc.add(q);
- }
- }
- }
- }
-
private BeanPropertyInfoFactory createReflectionFactory() {
return new EnhanceBeanPropertyInfoFactory();
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/DNativeQuery.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/DNativeQuery.java
deleted file mode 100644
index 82f00799b..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/DNativeQuery.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.avaje.ebeaninternal.server.deploy;
-
-/**
- * A native query defined in deployment xml.
- */
-public class DNativeQuery {
-
- final String query;
-
- public DNativeQuery(String query) {
- this.query = query;
- }
-
- public String getQuery() {
- return query;
- }
-
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/DRawSqlColumnInfo.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/DRawSqlColumnInfo.java
deleted file mode 100644
index f83945284..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/DRawSqlColumnInfo.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.avaje.ebeaninternal.server.deploy;
-
-public class DRawSqlColumnInfo {
-
- final String name;
-
- final String label;
-
- final String propertyName;
-
- final boolean scalarProperty;
-
- public DRawSqlColumnInfo(String name, String label, String propertyName, boolean scalarProperty) {
- this.name = name;
- this.label = label;
- this.propertyName = propertyName;
- this.scalarProperty = scalarProperty;
- }
-
- public String getName() {
- return name;
- }
-
- public String getLabel() {
- return label;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public boolean isScalarProperty() {
- return scalarProperty;
- }
-
- public String toString() {
- return "name:" + name + " label:" + label + " prop:" + propertyName;
- }
- }
\ No newline at end of file
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/DRawSqlMeta.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/DRawSqlMeta.java
deleted file mode 100644
index dda18d5e7..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/DRawSqlMeta.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.avaje.ebeaninternal.server.deploy;
-
-/**
- * Meta data for a sql-select object.
- *
- * Created from SqlSelect annotation or xml deployment.
- *
- * It removes support for nodes being mixed with content. That is, a node can
- * only contain content or a list of one or more child nodes. It does not
- * support mixing bits of content between the child nodes.
- *
- *
- * Although designed to simplify XML in supported cases it can be used as a
- * general tree structure with attributes of java Objects.
- *
- */
-public class Dnode {
-
- int level;
-
- String nodeName;
-
- String nodeContent;
-
- ArrayList children;
-
- final LinkedHashMap attrList = new LinkedHashMap();
-
- /**
- * Create a node.
- */
- public Dnode() {
- }
-
- /**
- * Parse the raw XML string.
- */
- public static Dnode parse(String s){
- DnodeReader r = new DnodeReader();
- return r.parseXml(s);
- }
-
- /**
- * Return the node as XML.
- */
- public String toXml() {
- StringBuilder sb = new StringBuilder();
- generate(sb);
- return sb.toString();
- }
-
- /**
- * Generate this node as xml to the buffer.
- */
- public void generate(StringBuilder sb) {
- if (sb == null) {
- sb = new StringBuilder();
- }
- sb.append("<").append(nodeName);
- for (String attr : attrList.keySet()) {
- Object attrValue = getAttribute(attr);
- sb.append(" ").append(attr).append("=\"");
- if (attrValue != null) {
- sb.append(attrValue);
- }
- sb.append("\"");
- }
-
- if (nodeContent == null && !hasChildren()) {
- sb.append(" />");
-
- } else {
- sb.append(">");
- if (children != null && children.size() > 0) {
- for (int i = 0; i < children.size(); i++) {
- Dnode child = children.get(i);
- child.generate(sb);
- }
- }
- if (nodeContent != null) {
- sb.append(nodeContent);
- }
- sb.append("").append(nodeName).append(">");
- }
- }
-
- /**
- * Return the node name.
- */
- public String getNodeName() {
- return nodeName;
- }
-
- /**
- * Set the node name.
- */
- public void setNodeName(String nodeName) {
- this.nodeName = nodeName;
- }
-
- /**
- * Return the node content.
- */
- public String getNodeContent() {
- return nodeContent;
- }
-
- /**
- * Set the node content.
- */
- public void setNodeContent(String nodeContent) {
- this.nodeContent = nodeContent;
- }
-
- /**
- * Return true if this node has children.
- */
- public boolean hasChildren() {
- return getChildrenCount() > 0;
- }
-
- /**
- * Return the number of children this node has.
- */
- public int getChildrenCount() {
- if (children == null) {
- return 0;
- }
- return children.size();
- }
-
- /**
- * Remove a ancestor node.
- */
- public boolean remove(Dnode node) {
- if (children == null) {
- return false;
- }
- if (children.remove(node)) {
- return true;
- }
- for (Dnode child : children) {
- if (child.remove(node)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * List of children nodes.
- */
- public List children() {
- if (children == null) {
- return null;
- }
- return children;
- }
-
- /**
- * Add a child.
- */
- public void addChild(Dnode child) {
- if (children == null) {
- children = new ArrayList();
- }
- children.add(child);
- child.setLevel(level + 1);
- }
-
- /**
- * Return the level or depth of the node from the root.
- */
- public int getLevel() {
- return level;
- }
-
- /**
- * Set the level or depth of this node from the root.
- */
- public void setLevel(int level) {
- this.level = level;
- if (children != null) {
- for (int i = 0; i < children.size(); i++) {
- Dnode child = children.get(i);
- child.setLevel(level + 1);
- }
- }
- }
-
- /**
- * Find the first matching node using nodeName. This is a depth first tree
- * search.
- */
- public Dnode find(String nodeName) {
- return find(nodeName, null, null);
- }
-
- /**
- * Find the first node matching nodeName and attribute value. This is a
- * depth first tree search.
- */
- public Dnode find(String nodeName, String attrName, Object value) {
-
- return find(nodeName, attrName, value, -1);
-
- }
-
- /**
- * Search for a single node with control over maxLevel. Find the first node
- * matching nodeName and attribute value. If attrName and value are null
- * then this will just search using the nodeName. This is a depth first tree
- * search. Once a matching node is found the search will stop.
- */
- public Dnode find(String nodeName, String attrName, Object value, int maxLevel) {
-
- ArrayList list = new ArrayList();
- findByNode(list, nodeName, true, attrName, value, maxLevel);
- if (list.size() >= 1) {
- return list.get(0);
- }
- return null;
- }
-
- /**
- * Find all the nodes that match the nodeName.
- *
- */
- public List findAll(String nodeName, int maxLevel) {
- int level = -1;
- if (maxLevel > 0) {
- level = this.level + maxLevel;
- }
- return findAll(nodeName, null, null, level);
- }
-
- /**
- * Find all the nodes that match the nodeName and attribute value.
- */
- public List findAll(String nodeName, String attrName, Object value, int maxLevel) {
-
- if (nodeName == null && attrName == null) {
- throw new RuntimeException("You can not have both nodeName and attrName null");
- }
- ArrayList list = new ArrayList();
- findByNode(list, nodeName, false, attrName, value, maxLevel);
- return list;
- }
-
- /**
- * Used for recursive calling.
- */
- private void findByNode(List list, String node, boolean findOne,String attrName, Object value, int maxLevel) {
-
- if (findOne && list.size() == 1) {
- return;
- }
- if (node == null || node.equals(nodeName)) {
- if (attrName == null || value.equals(getAttribute(attrName))) {
- list.add(this);
- if (findOne) {
- return;
- }
- }
- }
- if (maxLevel > 0 && level >= maxLevel) {
- // hit max level
-
- } else if (children != null) {
- // recursively search the children
- for (int i = 0; i < children.size(); i++) {
- Dnode child = children.get(i);
- child.findByNode(list, node, findOne, attrName, value,maxLevel);
- }
- }
- }
-
- /**
- * The attribute names as strings.
- */
- public Collection attributeNames() {
- return attrList.keySet();
- }
-
- /**
- * Return the attribute for a given name.
- */
- public String getAttribute(String name) {
- return attrList.get(name);
- }
-
- /**
- * Returns an Attribute as a String.
- *
- * Will throw a ClassCastException if the attribute is not a String.
- *
- */
- public String getStringAttr(String name, String defaultValue) {
- Object o = attrList.get(name);
- if (o == null){
- return defaultValue;
- } else {
- return o.toString();
- }
- }
-
- /**
- * Set an attribute.
- */
- public void setAttribute(String name, String value) {
- attrList.put(name, value);
- }
-
- public String toString() {
- return "[" + getNodeName() + " " + attrList + "]";
- }
-
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/lib/util/DnodeParser.java b/src/main/java/com/avaje/ebeaninternal/server/lib/util/DnodeParser.java
deleted file mode 100644
index e798a77ed..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/lib/util/DnodeParser.java
+++ /dev/null
@@ -1,200 +0,0 @@
-package com.avaje.ebeaninternal.server.lib.util;
-
-import java.util.Stack;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Parse an xml document into a Dnode tree.
- */
-public class DnodeParser extends DefaultHandler {
-
- /**
- * The root of the DContent tree.
- */
- Dnode root;
-
- /**
- * The current node being parsed.
- */
- Dnode currentNode;
-
- /**
- * The nodeContent buffer.
- */
- StringBuilder buffer;
-
- /**
- * Used to stack the nodes.
- */
- final Stack stack = new Stack();
-
- /**
- * The class used to construct new nodes. Should be Dnode or a subtype of
- * Dnode.
- */
- Class> nodeClass = Dnode.class;
-
- int depth = 0;
-
- /**
- * Trim whitespace from the content.
- */
- boolean trimWhitespace = true;
-
- /**
- * The name of the tag that contains html content
- */
- String contentName;
-
- /**
- * The depth of the tag that contains the html content
- */
- int contentDepth;
-
-
- /**
- * If true then trim the whitespace from the content.
- */
- public boolean isTrimWhitespace() {
- return trimWhitespace;
- }
-
- /**
- * Set whether to trim whitespace from the content.
- */
- public void setTrimWhitespace(boolean trimWhitespace) {
- this.trimWhitespace = trimWhitespace;
- }
-
- /**
- * Return the root node of the DContent tree.
- */
- public Dnode getRoot() {
- return root;
- }
-
- /**
- * Set the type class of node to be created.
- */
- public void setNodeClass(Class> nodeClass) {
- this.nodeClass = nodeClass;
- }
-
- /**
- * Create a new Dnode using the nodeClass.
- */
- private Dnode createNewNode() {
- try {
- return (Dnode) nodeClass.newInstance();
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
-
-
- /**
- * process a startElement.
- */
- public void startElement(String uri, String localName, String qName, Attributes attributes)
- throws SAXException {
-
- super.startElement(uri, localName, qName, attributes);
- depth++;
-
- boolean isContent = (contentName != null);
-
- if (isContent){
- // must be html content... add the begin tag as content
- buffer.append("<").append(localName);
- for (int i = 0; i < attributes.getLength(); i++) {
- String key = attributes.getLocalName(i);
- String val = attributes.getValue(i);
- buffer.append(" ").append(key).append("='").append(val).append("'");
- }
- buffer.append(">");
- return;
-
- }
-
- buffer = new StringBuilder();
- Dnode node = createNewNode();
- node.setNodeName(localName);
- for (int i = 0; i < attributes.getLength(); i++) {
- String key = attributes.getLocalName(i);
- String val = attributes.getValue(i);
- node.setAttribute(key, val);
- if ("type".equalsIgnoreCase(key) && "content".equalsIgnoreCase(val)) {
- // this tag contains html content
- // no more nodes until end tag is found
- contentName = localName;
- contentDepth = depth-1;
- }
-
- }
- if (root == null) {
- root = node;
- }
- if (currentNode != null) {
- currentNode.addChild(node);
- }
- stack.push(node);
- currentNode = node;
-
- }
-
- /**
- * append the node content.
- */
- public void characters(char[] ch, int start, int length) throws SAXException {
- super.characters(ch, start, length);
- String s = new String(ch, start, length);
- int p = s.indexOf('\r');
- int p2 = s.indexOf('\n');
- if (p == -1 && p2 > -1) {
- // This is probably not an issue but tidys up content
- // in my text editor
- s = StringHelper.replaceString(s, "\n", "\r\n");
- }
- buffer.append(s);
- }
-
- /**
- * process the endElement.
- */
- public void endElement(String uri, String localName, String qName) throws SAXException {
- super.endElement(uri, localName, qName);
- depth--;
-
- if (contentName != null){
- // is this the end of the content?
- if (contentName.equals(localName) && contentDepth == depth){
- contentName = null;
-
- } else {
- // the html content end tag
- buffer.append("").append(localName).append(">");
- }
- return;
- }
- String content = buffer.toString();
- buffer.setLength(0);
- if (content.length() > 0) {
- if (trimWhitespace) {
- content = content.trim();
- }
- if (content.length() > 0) {
- currentNode.setNodeContent(content);
- }
- }
- stack.pop();
- if (!stack.isEmpty()) {
- // get the new currentNode
- currentNode = stack.pop();
- stack.push(currentNode);
- }
- }
-
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/lib/util/DnodeReader.java b/src/main/java/com/avaje/ebeaninternal/server/lib/util/DnodeReader.java
deleted file mode 100644
index 0514bb20c..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/lib/util/DnodeReader.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.avaje.ebeaninternal.server.lib.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.io.StringReader;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * Parses an XML inputstream returning a Dnode tree.
- */
-public class DnodeReader {
-
- public Dnode parseXml(String str) {
-
- try {
- ByteArrayOutputStream bao = new ByteArrayOutputStream(str.length());
- OutputStreamWriter osw = new OutputStreamWriter(bao);
-
- StringReader sr = new StringReader(str);
-
- int charBufferSize = 1024;
- char[] buf = new char[charBufferSize];
- int len;
- while ((len = sr.read(buf, 0, buf.length)) != -1) {
- osw.write(buf, 0, len);
- }
- sr.close();
- osw.flush();
- osw.close();
-
- bao.flush();
- bao.close();
-
- InputStream is = new ByteArrayInputStream(bao.toByteArray());
- return parseXml(is);
-
- } catch (IOException ex){
- throw new RuntimeException(ex);
- }
- }
-
- /**
- * Parse the XML inputstream returning the Dnode tree.
- */
- public Dnode parseXml(InputStream in) {
-
- try {
- InputSource inSource = new InputSource(in);
-
- DnodeParser parser = new DnodeParser();
-
- XMLReader myReader = XMLReaderFactory.createXMLReader();
- myReader.setContentHandler(parser);
-
- myReader.parse(inSource);
-
- return parser.getRoot();
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java b/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java
index 39972cd35..b69526d6f 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java
@@ -590,13 +590,6 @@ public class CQuery implements DbReadContext, CancelableQuery {
request.getGraphContext().register(path, bc);
}
- /**
- * Return the query name.
- */
- public String getName() {
- return query.getName();
- }
-
/**
* Return true if this is a raw sql query as opposed to Ebean generated sql.
*/
diff --git a/src/main/java/com/avaje/ebeaninternal/server/query/CQueryBuilder.java b/src/main/java/com/avaje/ebeaninternal/server/query/CQueryBuilder.java
index 06a08486c..e9dde50d5 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/query/CQueryBuilder.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/query/CQueryBuilder.java
@@ -38,7 +38,6 @@ public class CQueryBuilder {
private final SqlLimiter sqlLimiter;
- private final RawSqlSelectClauseBuilder sqlSelectBuilder;
private final CQueryBuilderRawSql rawSqlHandler;
private final Binder binder;
@@ -62,7 +61,6 @@ public class CQueryBuilder {
this.historySupport = historySupport;
this.tableAliasPlaceHolder = dbPlatform.getTableAliasPlaceHolder();
this.columnAliasPrefix = dbPlatform.getColumnAliasPrefix();
- this.sqlSelectBuilder = new RawSqlSelectClauseBuilder(dbPlatform, binder);
this.sqlLimiter = dbPlatform.getSqlLimiter();
this.rawSqlHandler = new CQueryBuilderRawSql(sqlLimiter, dbPlatform);
this.selectCountWithAlias = dbPlatform.isSelectCountWithAlias();
@@ -260,10 +258,6 @@ public class CQueryBuilder {
*/
public CQuery buildQuery(OrmQueryRequest request) {
- if (request.isSqlSelect()) {
- return sqlSelectBuilder.build(request);
- }
-
CQueryPredicates predicates = new CQueryPredicates(binder, request);
CQueryPlan queryPlan = request.getQueryPlan();
diff --git a/src/main/java/com/avaje/ebeaninternal/server/query/CQueryEngine.java b/src/main/java/com/avaje/ebeaninternal/server/query/CQueryEngine.java
index a3171a5a7..26153674d 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/query/CQueryEngine.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/query/CQueryEngine.java
@@ -466,7 +466,6 @@ public class CQueryEngine {
}
msg.append("exeMicros[").append(q.getQueryExecutionTimeMicros());
msg.append("] rows[").append(q.getLoadedRowDetail());
- msg.append("] name[").append(q.getName());
msg.append("] predicates[").append(q.getLogWhereSql());
msg.append("] bind[").append(q.getBindLog()).append("]");
diff --git a/src/main/java/com/avaje/ebeaninternal/server/query/RawSqlSelectClauseBuilder.java b/src/main/java/com/avaje/ebeaninternal/server/query/RawSqlSelectClauseBuilder.java
deleted file mode 100644
index c79dc478a..000000000
--- a/src/main/java/com/avaje/ebeaninternal/server/query/RawSqlSelectClauseBuilder.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.avaje.ebeaninternal.server.query;
-
-import javax.persistence.PersistenceException;
-
-import com.avaje.ebean.config.dbplatform.DatabasePlatform;
-import com.avaje.ebean.config.dbplatform.SqlLimitResponse;
-import com.avaje.ebean.config.dbplatform.SqlLimiter;
-import com.avaje.ebeaninternal.api.SpiQuery;
-import com.avaje.ebeaninternal.server.core.OrmQueryRequest;
-import com.avaje.ebeaninternal.server.deploy.BeanDescriptor;
-import com.avaje.ebeaninternal.server.deploy.DRawSqlSelect;
-import com.avaje.ebeaninternal.server.deploy.DeployNamedQuery;
-import com.avaje.ebeaninternal.server.deploy.DeployParser;
-import com.avaje.ebeaninternal.server.persist.Binder;
-import com.avaje.ebeaninternal.server.querydefn.OrmQueryLimitRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Factory for SqlSelectClause based on raw sql.
- *
- * Its job is to execute the sql, read the meta data to determine the columns to
- * bean property mapping.
- *
- */
-public class RawSqlSelectClauseBuilder {
-
- private static final Logger logger = LoggerFactory.getLogger(RawSqlSelectClauseBuilder.class);
-
- private final Binder binder;
-
- private final SqlLimiter dbQueryLimiter;
- private final DatabasePlatform dbPlatform;
-
- public RawSqlSelectClauseBuilder(DatabasePlatform dbPlatform, Binder binder) {
-
- this.binder = binder;
- this.dbQueryLimiter = dbPlatform.getSqlLimiter();
- this.dbPlatform = dbPlatform;
- }
-
- /**
- * Build based on the includes and using the BeanJoinTree.
- */
- public CQuery build(OrmQueryRequest request) throws PersistenceException {
-
- SpiQuery query = request.getQuery();
- BeanDescriptor desc = request.getBeanDescriptor();
-
- DeployNamedQuery namedQuery = desc.getNamedQuery(query.getName());
- DRawSqlSelect sqlSelect = namedQuery.getSqlSelect();
-
- // create a parser for this specific SqlSelect... has to be really
- // as each SqlSelect could have different table alias etc
- DeployParser parser = sqlSelect.createDeployPropertyParser();
-
- CQueryPredicates predicates = new CQueryPredicates(binder, request);
- // prepare and convert logical property names to dbColumns etc
- predicates.prepareRawSql(parser);
-
- SqlTreeAlias alias = new SqlTreeAlias(sqlSelect.getTableAlias());
- predicates.parseTableAlias(alias);
-
- String sql = null;
- try {
-
- boolean includeRowNumColumn = false;
- String orderBy = sqlSelect.getOrderBy(predicates);
-
- // build the actual sql String
- sql = sqlSelect.buildSql(orderBy, predicates, request);
- if (query.hasMaxRowsOrFirstRow() && dbQueryLimiter != null) {
- // wrap with a limit offset or ROW_NUMBER() etc
- SqlLimitResponse limitSql = dbQueryLimiter.limit(new OrmQueryLimitRequest(sql, orderBy, query, dbPlatform));
- includeRowNumColumn = limitSql.isIncludesRowNumberColumn();
-
- sql = limitSql.getSql();
- } else {
- // add back select keyword
- // ... was removed to support dbQueryLimiter
- sql = "select " + sql;
- }
-
- SqlTree sqlTree = sqlSelect.getSqlTree();
-
- CQueryPlan queryPlan = new CQueryPlan(request, sql, sqlTree, true, includeRowNumColumn, "");
- return new CQuery(request, predicates, queryPlan);
-
- } catch (Exception e) {
-
- String msg = "Error with " + desc.getFullName() + " query:\r" + sql;
- logger.error(msg);
- throw new PersistenceException(e);
- }
- }
-
-}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java
index 1e7d17e83..cf47df856 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java
@@ -21,14 +21,11 @@ import com.avaje.ebeaninternal.api.SpiQuerySecondary;
import com.avaje.ebeaninternal.server.autotune.ProfilingListener;
import com.avaje.ebeaninternal.server.deploy.BeanDescriptor;
import com.avaje.ebeaninternal.server.deploy.BeanPropertyAssocMany;
-import com.avaje.ebeaninternal.server.deploy.DRawSqlSelect;
-import com.avaje.ebeaninternal.server.deploy.DeployNamedQuery;
import com.avaje.ebeaninternal.server.deploy.TableJoin;
import com.avaje.ebeaninternal.server.expression.DefaultExpressionList;
import com.avaje.ebeaninternal.server.expression.SimpleExpression;
import com.avaje.ebeaninternal.server.query.CancelableQuery;
-import javax.persistence.PersistenceException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Iterator;
@@ -61,11 +58,6 @@ public class DefaultOrmQuery implements SpiQuery {
private CancelableQuery cancelableQuery;
- /**
- * The name of the query.
- */
- private String name;
-
private Type type;
private Mode mode = Mode.NORMAL;
@@ -194,8 +186,6 @@ public class DefaultOrmQuery implements SpiQuery {
private PersistenceContextScope persistenceContextScope;
- private boolean sqlSelect;
-
/**
* Allow for explicit on off or null for default.
*/
@@ -240,47 +230,12 @@ public class DefaultOrmQuery implements SpiQuery {
private boolean useDocStore;
- public DefaultOrmQuery(BeanDescriptor desc, EbeanServer server, ExpressionFactory expressionFactory, String query) {
+ public DefaultOrmQuery(BeanDescriptor desc, EbeanServer server, ExpressionFactory expressionFactory) {
this.beanDescriptor = desc;
this.beanType = desc.getBeanType();
this.server = server;
this.expressionFactory = expressionFactory;
this.detail = new OrmQueryDetail();
- this.name = "";
- if (query != null) {
- setQuery(query);
- }
- }
-
- /**
- * Additional supply a query which is parsed.
- */
- public DefaultOrmQuery(BeanDescriptor desc, EbeanServer server, ExpressionFactory expressionFactory,
- DeployNamedQuery namedQuery) throws PersistenceException {
-
- this.beanDescriptor = desc;
- this.beanType = desc.getBeanType();
- this.server = server;
- this.expressionFactory = expressionFactory;
- this.detail = new OrmQueryDetail();
- if (namedQuery == null) {
- this.name = "";
- } else {
- this.name = namedQuery.getName();
- this.sqlSelect = namedQuery.isSqlSelect();
- if (sqlSelect) {
- // potentially with where and having clause...
- DRawSqlSelect sqlSelect = namedQuery.getSqlSelect();
- additionalWhere = sqlSelect.getWhereClause();
- additionalHaving = sqlSelect.getHavingClause();
- } else if (namedQuery.isRawSql()) {
- rawSql = namedQuery.getRawSql();
-
- } else {
- // parse the entire query...
- setQuery(namedQuery.getQuery());
- }
- }
}
@Override
@@ -290,7 +245,7 @@ public class DefaultOrmQuery implements SpiQuery {
@Override
public boolean isAutoTunable() {
- return beanDescriptor.isAutoTunable() && !isSqlSelect();
+ return beanDescriptor.isAutoTunable();
}
@Override
@@ -496,7 +451,7 @@ public class DefaultOrmQuery implements SpiQuery {
if (Mode.LAZYLOAD_MANY.equals(getMode())) {
return false;
- } else if (hasMaxRowsOrFirstRow() && !isRawSql() && !isSqlSelect()) {
+ } else if (hasMaxRowsOrFirstRow() && !isRawSql()) {
return false;
}
return true;
@@ -605,8 +560,7 @@ public class DefaultOrmQuery implements SpiQuery {
@Override
public DefaultOrmQuery copy(EbeanServer server) {
- DefaultOrmQuery copy = new DefaultOrmQuery(beanDescriptor, server, expressionFactory, (String) null);
- copy.name = name;
+ DefaultOrmQuery copy = new DefaultOrmQuery(beanDescriptor, server, expressionFactory);
copy.includeTableJoin = includeTableJoin;
copy.profilingListener = profilingListener;
@@ -623,7 +577,6 @@ public class DefaultOrmQuery implements SpiQuery {
copy.excludeBeanCache = excludeBeanCache;
copy.useQueryCache = useQueryCache;
copy.readOnly = readOnly;
- copy.sqlSelect = sqlSelect;
if (detail != null) {
copy.detail = detail.copy();
}
@@ -744,7 +697,7 @@ public class DefaultOrmQuery implements SpiQuery {
@Override
public Boolean isAutoTune() {
- return sqlSelect ? Boolean.FALSE : autoTune;
+ return autoTune;
}
@Override
@@ -946,19 +899,6 @@ public class DefaultOrmQuery implements SpiQuery {
return new HashQuery(queryPlanKey, hc);
}
- /**
- * Return the query name.
- */
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public boolean isSqlSelect() {
- return sqlSelect;
- }
-
@Override
public boolean isRawSql() {
return rawSql != null;
@@ -1065,16 +1005,6 @@ public class DefaultOrmQuery implements SpiQuery {
return this;
}
- public void setQuery(String queryString) throws PersistenceException {
-
- this.query = queryString;
-
- OrmQueryDetailParser parser = new OrmQueryDetailParser(queryString);
- parser.parse();
- parser.assign(this);
- }
-
-
protected void setRawWhereClause(String rawWhereClause) {
this.rawWhereClause = rawWhereClause;
}
diff --git a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmUpdate.java b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmUpdate.java
index 76fb508c2..8b0a65a51 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmUpdate.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmUpdate.java
@@ -5,7 +5,6 @@ import java.io.Serializable;
import com.avaje.ebean.EbeanServer;
import com.avaje.ebeaninternal.api.BindParams;
import com.avaje.ebeaninternal.api.SpiUpdate;
-import com.avaje.ebeaninternal.server.deploy.DeployNamedUpdate;
/**
* Default implementation of OrmUpdate.
@@ -60,20 +59,6 @@ public final class DefaultOrmUpdate implements SpiUpdate, Serializable {
this.name = "";
this.updateStatement = updateStatement;
this.type = deriveType(updateStatement);
-
- }
-
- public DefaultOrmUpdate(Class> beanType, EbeanServer server, String baseTable, DeployNamedUpdate namedUpdate) {
-
- this.beanType = beanType;
- this.server = server;
- this.baseTable = baseTable;
- this.name = namedUpdate.getName();
- this.notifyCache = namedUpdate.isNotifyCache();
-
- // named updates are always converted to sql as part of the initialisation
- this.updateStatement = namedUpdate.getSqlUpdateStatement();
- this.type = deriveType(updateStatement);
}
public DefaultOrmUpdate setTimeout(int secs) {
diff --git a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java
index 3815a253a..0f4be7aea 100644
--- a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java
+++ b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java
@@ -275,16 +275,6 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
return null;
}
- @Override
- public Query createNamedQuery(Class beanType, String namedQuery) {
- return null;
- }
-
- @Override
- public Query createQuery(Class beanType, String query) {
- return null;
- }
-
@Override
public Query createQuery(Class beanType) {
return null;
@@ -315,11 +305,6 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
}
- @Override
- public Update createNamedUpdate(Class beanType, String namedUpdate) {
- return null;
- }
-
@Override
public Update createUpdate(Class beanType, String ormUpdate) {
return null;
@@ -330,11 +315,6 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
return null;
}
- @Override
- public SqlQuery createNamedSqlQuery(String namedQuery) {
- return null;
- }
-
@Override
public SqlUpdate createSqlUpdate(String sql) {
return null;
@@ -345,11 +325,6 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
return null;
}
- @Override
- public SqlUpdate createNamedSqlUpdate(String namedQuery) {
- return null;
- }
-
@Override
public void register(TransactionCallback transactionCallback) throws PersistenceException {
diff --git a/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java b/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java
index 88714a5c5..ff9d8e931 100644
--- a/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java
+++ b/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java
@@ -89,7 +89,7 @@ public class TestQueryLanguage extends BaseTestCase {
BeanDescriptor desc = server.getBeanDescriptor(Order.class);
DefaultOrmQuery qry = new DefaultOrmQuery(desc, server,
- new DefaultExpressionFactory(false, false), (String) null);
+ new DefaultExpressionFactory(false, false));
p.assign(qry);
return qry;
diff --git a/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java b/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java
index 4a96d35c4..96d1c9e56 100644
--- a/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java
+++ b/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java
@@ -80,22 +80,5 @@ public class TestJoinInheritance extends BaseTestCase {
Ebean.save(trip);
}
- Ebean.beginTransaction();
-
- Query q = Ebean.createQuery(Trip.class, "join address join vehicleDriver ");
-
- List trips = q.findList();
-
- Assert.assertTrue(trips.size() == nrDrivers);
-
- for (Trip t:trips){
- Address a = t.getAddress();
- Assert.assertTrue(line1.equals(a.getLine1()));
- Assert.assertTrue(line2.equals(a.getLine2()));
- Assert.assertTrue(city.equals(a.getCity()));
- }
-
-
- Ebean.endTransaction();
}
}
diff --git a/src/test/java/com/avaje/tests/basic/TestMappedSuper.java b/src/test/java/com/avaje/tests/basic/TestMappedSuper.java
index ccca84c8b..8ac108ddd 100644
--- a/src/test/java/com/avaje/tests/basic/TestMappedSuper.java
+++ b/src/test/java/com/avaje/tests/basic/TestMappedSuper.java
@@ -1,14 +1,10 @@
package com.avaje.tests.basic;
-import java.util.List;
-
-import org.junit.Assert;
-import org.junit.Test;
-
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
-import com.avaje.ebean.Query;
import com.avaje.tests.model.basic.TMapSuperEntity;
+import org.junit.Assert;
+import org.junit.Test;
public class TestMappedSuper extends BaseTestCase {
@@ -28,19 +24,6 @@ public class TestMappedSuper extends BaseTestCase {
Assert.assertNotNull(e2);
- // using a raw SQL query that populates a transient field
- Query query = Ebean.createNamedQuery(TMapSuperEntity.class, "testTransient");
-
- List list = query.where()
- .gt("id", 0)
- .istartsWith("name", "bab")
- .findList();
-
- Assert.assertTrue(list.size() >= 1);
- TMapSuperEntity e3 = list.get(0);
- Integer myint = e3.getMyint();
- Assert.assertEquals(Integer.valueOf(12), myint);
-
TMapSuperEntity eSaveDelete = new TMapSuperEntity();
eSaveDelete.setName("babana");
diff --git a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java
index 0522de3c2..8337e57d2 100644
--- a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java
+++ b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java
@@ -2,6 +2,8 @@ package com.avaje.tests.basic;
import java.util.List;
+import com.avaje.ebean.RawSql;
+import com.avaje.ebean.RawSqlBuilder;
import org.junit.Assert;
import org.junit.Test;
@@ -17,23 +19,25 @@ public class TestOrderTotalAmountReportBean extends BaseTestCase {
ResetBasicData.reset();
- List l0 = Ebean.find(OrderAggregate.class).findList();
+ String sql =
+ "select order_id, count(*) as totalItems, sum(order_qty*unit_price) as totalAmount \n" +
+ "from o_order_detail \n" +
+ "group by order_id";
+
+ RawSql rawSql = RawSqlBuilder.parse(sql).columnMapping("order_id", "order.id").create();
+
+ List l0 =
+ Ebean.find(OrderAggregate.class)
+ .setRawSql(rawSql)
+ .findList();
for (OrderAggregate r0 : l0) {
r0.toString();
}
- List list = Ebean.createNamedQuery(OrderAggregate.class, "total.amount")
- .where().gt("order.id", 0).having().gt("totalAmount", 50).findList();
-
- for (OrderAggregate r1 : list) {
- Assert.assertTrue(r1.getTotalAmount() > 20.50);
- // partial object query without totalItems
- // ... no lazy loading invoked on this type of bean
- Assert.assertTrue(r1.getTotalItems() == null);
- }
-
- List l2 = Ebean.createQuery(OrderAggregate.class).where().gt("order.id", 0)
+ List l2 = Ebean.createQuery(OrderAggregate.class)
+ .setRawSql(rawSql)
+ .where().gt("order.id", 0)
.having().lt("totalItems", 3).gt("totalAmount", 50).findList();
for (OrderAggregate r2 : l2) {
diff --git a/src/test/java/com/avaje/tests/basic/TestQueryParse.java b/src/test/java/com/avaje/tests/basic/TestQueryParse.java
deleted file mode 100644
index 1431f5082..000000000
--- a/src/test/java/com/avaje/tests/basic/TestQueryParse.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.avaje.tests.basic;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.avaje.ebean.BaseTestCase;
-import com.avaje.ebean.Ebean;
-import com.avaje.ebean.OrderBy;
-import com.avaje.ebean.Query;
-import com.avaje.tests.model.basic.Order;
-import com.avaje.tests.model.basic.ResetBasicData;
-
-public class TestQueryParse extends BaseTestCase {
-
- @Test
- public void test() {
- //GlobalProperties.put("ebean.ddl.generate", "false");
- //GlobalProperties.put("ebean.ddl.run", "false");
- ResetBasicData.reset();
-
- String oql = "where 1=1 order by customer.name desc, status";
- Query query = Ebean.createQuery(Order.class, oql);
-
- OrderBy order = query.order();
- Assert.assertTrue(order.getProperties().size() == 2);
- Assert.assertEquals("customer.name",order.getProperties().get(0).getProperty());
- Assert.assertFalse(order.getProperties().get(0).isAscending());
- Assert.assertEquals("status",order.getProperties().get(1).getProperty());
- Assert.assertTrue(order.getProperties().get(1).isAscending());
- }
-
-}
diff --git a/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java b/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java
index 35ffd93b7..6d685fa1a 100644
--- a/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java
+++ b/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java
@@ -56,18 +56,6 @@ public class TestEncrypt extends BaseTestCase {
Date earlyDob = new Date(System.currentTimeMillis() - 500000);
- List qlList = Ebean
- .createQuery(EBasicEncrypt.class, "where description like :d and dob >= :dob")
- .setParameter("d", "testde%").setParameter("dob", earlyDob).findList();
-
- Assert.assertTrue(qlList.size() > 0);
-
- qlList = Ebean
- .createQuery(EBasicEncrypt.class, "find e (id, description) where description = :d")
- .setParameter("d", "testdesc").findList();
-
- Assert.assertTrue(qlList.size() == 1);
-
SqlQuery q = Ebean.createSqlQuery("select * from e_basicenc where id = :id");
q.setParameter("id", e.getId());
@@ -105,11 +93,6 @@ public class TestEncrypt extends BaseTestCase {
list = Ebean.find(EBasicEncrypt.class).where().startsWith("description", "modde").findList();
Assert.assertEquals(1, list.size());
-
- list = Ebean.createQuery(EBasicEncrypt.class, "where description like :d")
- .setParameter("d", "modde%").findList();
-
- Assert.assertNotNull(list);
}
}
diff --git a/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java b/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java
index 64ad56330..b4c027763 100644
--- a/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java
+++ b/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java
@@ -71,19 +71,6 @@ public class TestLazyJoin2 extends BaseTestCase {
String name = customer2.getName();
Assert.assertNotNull(name);
- String q = "find order join customer (+query(1) +lazy(10) name, status) join customer.contacts ";
- Query query = Ebean.createQuery(Order.class, q);
-
- List list3 = query.findList();
- Order order3 = list3.get(0);
- String n3 = order3.getCustomer().getName();
-
- for (Order o3 : list3) {
- o3.getCustomer().getName();
- }
-
- Assert.assertNotNull(n3);
-
}
}
diff --git a/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java b/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java
index e3af951a6..e199dfe0b 100644
--- a/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java
+++ b/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java
@@ -66,20 +66,6 @@ public class TestDeleteByQuery extends BaseTestCase {
assertThat(sql.get(0)).contains("delete from o_customer where name = ?");
}
- @Test
- public void delete_queryString() {
-
- LoggedSqlCollector.start();
-
- Ebean.createQuery(Customer.class, "where name = :name")
- .setParameter("name","Don Roberto")
- .delete();
-
- List sql = LoggedSqlCollector.stop();
- assertThat(sql).hasSize(1);
- assertThat(sql.get(0)).contains("delete from o_customer where name = ?");
- }
-
@Test
public void testCommit() {
diff --git a/src/test/java/com/avaje/tests/inheritance/TestInheritanceJoins.java b/src/test/java/com/avaje/tests/inheritance/TestInheritanceJoins.java
index 1b39a520f..a09f3d3b3 100644
--- a/src/test/java/com/avaje/tests/inheritance/TestInheritanceJoins.java
+++ b/src/test/java/com/avaje/tests/inheritance/TestInheritanceJoins.java
@@ -34,14 +34,6 @@ public class TestInheritanceJoins extends BaseTestCase {
r.setProductConfiguration(pc);
r.setGroupConfiguration(gc);
server.save(r);
-
-
- Query q = server.createNamedQuery(CalculationResult.class, "loadResult");
- q.setParameter("charge", 100.0);
-
- List results = q.findList();
-
- Assert.assertTrue(!results.isEmpty());
}
@Test
@@ -84,14 +76,6 @@ public class TestInheritanceJoins extends BaseTestCase {
r.setProductConfiguration(pc);
r.setGroupConfiguration(null);
server.save(r);
-
-
- Query q = server.createNamedQuery(CalculationResult.class, "loadResult");
- q.setParameter("charge", charge);
-
- List results = q.findList();
-
- Assert.assertTrue(!results.isEmpty());
}
@Test
diff --git a/src/test/java/com/avaje/tests/query/TestInCollectionQueryPlan.java b/src/test/java/com/avaje/tests/query/TestInCollectionQueryPlan.java
deleted file mode 100644
index 75b4cca63..000000000
--- a/src/test/java/com/avaje/tests/query/TestInCollectionQueryPlan.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.avaje.tests.query;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.Test;
-
-import com.avaje.ebean.BaseTestCase;
-import com.avaje.ebean.Ebean;
-import com.avaje.tests.model.basic.Customer;
-import com.avaje.tests.model.basic.ResetBasicData;
-
-public class TestInCollectionQueryPlan extends BaseTestCase {
-
- @Test
- public void test() {
-
- ResetBasicData.reset();
-
- List