Skip to content
Snippets Groups Projects

Prototype for RDBMS projection functionality

Closed Martin Lowe requested to merge malowe/master/projections into master
5 files
+ 229
56
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -47,7 +47,7 @@ public abstract class BaseHibernateDao implements PersistenceDao {
@Override
public <T extends BareNode> List<T> get(RDBMSQuery<T> q) {
if (maintenanceFlag) {
if (isMaintenanceMode()) {
throw new MaintenanceException();
}
// handle root request parameters (setting headers to track limit and max count)
@@ -58,8 +58,7 @@ public abstract class BaseHibernateDao implements PersistenceDao {
LOGGER.debug("Querying DB using the following query: {}", q.getFilter().getSelectSql());
}
// build base query
TypedQuery<T> query = getEntityManager().createQuery(q.getFilter().getSelectSql(),
q.getDocType());
TypedQuery<T> query = getEntityManager().createQuery(q.getFilter().getSelectSql(), q.getDocType());
// add ordinal parameters
int ord = 1;
@@ -80,7 +79,7 @@ public abstract class BaseHibernateDao implements PersistenceDao {
@Transactional
@Override
public <T extends BareNode> List<T> add(RDBMSQuery<T> q, List<T> documents) {
if (maintenanceFlag) {
if (isMaintenanceMode()) {
throw new MaintenanceException();
}
if (LOGGER.isDebugEnabled()) {
@@ -113,7 +112,7 @@ public abstract class BaseHibernateDao implements PersistenceDao {
@Transactional
@Override
public <T extends BareNode> void delete(RDBMSQuery<T> q) {
if (maintenanceFlag) {
if (isMaintenanceMode()) {
throw new MaintenanceException();
}
@@ -132,7 +131,7 @@ public abstract class BaseHibernateDao implements PersistenceDao {
@Transactional
@Override
public Long count(RDBMSQuery<?> q) {
if (maintenanceFlag) {
if (isMaintenanceMode()) {
throw new MaintenanceException();
}
if (LOGGER.isDebugEnabled()) {
@@ -154,16 +153,15 @@ public abstract class BaseHibernateDao implements PersistenceDao {
@Override
public <T extends BareNode> T getReference(Object id, Class<T> type) {
if (maintenanceFlag) {
if (isMaintenanceMode()) {
throw new MaintenanceException();
}
return getEntityManager().getReference(type, id);
}
/**
* Handles operations that should happen on a "root" or main DB request for a
* fulfilled request. This is done to ensure that values such as DB max are
* abided.
* Handles operations that should happen on a "root" or main DB request for a fulfilled request. This is done to
* ensure that values such as DB max are abided.
*/
private void handleRoot(RDBMSQuery<?> q) {
// check if count has been performed, if not do so and set it to the response
@@ -192,7 +190,7 @@ public abstract class BaseHibernateDao implements PersistenceDao {
@Override
public HealthCheckResponse call() {
HealthCheckResponseBuilder b = HealthCheckResponse.named("DB readiness");
if (maintenanceFlag) {
if (isMaintenanceMode()) {
return b.down().withData("error", "Maintenance flag is set").build();
}
return b.up().build();
@@ -205,7 +203,13 @@ public abstract class BaseHibernateDao implements PersistenceDao {
* @param persistenceUnit the persistence unit targeted for the transaction
* @return entity manager object linked to current transaction
*/
protected EntityManager getEntityManager() {
@Override
public EntityManager getEntityManager() {
return inner;
}
@Override
public boolean isMaintenanceMode() {
return maintenanceFlag;
}
}
Loading