Details
diff --git a/account/src/main/resources/com/ning/billing/account/dao/AccountEmailSqlDao.sql.stg b/account/src/main/resources/com/ning/billing/account/dao/AccountEmailSqlDao.sql.stg
index 05bdcd2..2dcaa7a 100644
--- a/account/src/main/resources/com/ning/billing/account/dao/AccountEmailSqlDao.sql.stg
+++ b/account/src/main/resources/com/ning/billing/account/dao/AccountEmailSqlDao.sql.stg
@@ -27,18 +27,18 @@ tableValues() ::= <<
getEmailByAccountId() ::= <<
select
-<allTableFields()>
-from <tableName()>
-where account_id = :accountId
-and is_active
-<AND_CHECK_TENANT()>
+ <allTableFields("t.")>
+from <tableName()> t
+where t.account_id = :accountId
+and t.is_active
+<AND_CHECK_TENANT("t.")>
;
>>
markEmailAsDeleted() ::= <<
-update <tableName()>
+update <tableName()> t
set is_active = 0
-where id = :id
-<AND_CHECK_TENANT()>
+where <idField("t.")> = :id
+<AND_CHECK_TENANT("t.")>
;
>>
diff --git a/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDaoWrapperInvocationHandler.java b/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDaoWrapperInvocationHandler.java
index 8fa62d5..1ded618 100644
--- a/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDaoWrapperInvocationHandler.java
+++ b/util/src/main/java/com/ning/billing/util/entity/dao/EntitySqlDaoWrapperInvocationHandler.java
@@ -187,7 +187,6 @@ public class EntitySqlDaoWrapperInvocationHandler<S extends EntitySqlDao<M, E>,
}
private List<String> retrieveEntityIdsFromArguments(final Method method, final Object[] args) {
-
final Annotation[][] parameterAnnotations = method.getParameterAnnotations();
int i = -1;
for (final Object arg : args) {
diff --git a/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDao.java b/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDao.java
index 92f4fd0..d40fbf4 100644
--- a/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDao.java
+++ b/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDao.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2011 Ning, Inc.
+ * Copyright 2010-2012 Ning, Inc.
*
* Ning licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -143,7 +143,7 @@ public class DefaultTagDao extends EntityDaoBase<TagModelDao, Tag, TagApiExcepti
throw new TagApiException(ErrorCode.TAG_DOES_NOT_EXIST, tagDefinition.getName());
}
// Delete the tag
- transactional.deleteById(tag.getId(), context);
+ transactional.markTagAsDeleted(tag.getId().toString(), context);
postBusEventFromTransaction(tag, tag, ChangeType.DELETE, entitySqlDaoWrapperFactory, context);
return null;
diff --git a/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java b/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java
index 9d4070a..968c957 100644
--- a/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java
+++ b/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java
@@ -207,7 +207,7 @@ public class DefaultTagDefinitionDao extends EntityDaoBase<TagDefinitionModelDao
}
// Delete it
- tagDefinitionSqlDao.deleteTagDefinition(definitionId.toString(), context);
+ tagDefinitionSqlDao.markTagDefinitionAsDeleted(definitionId.toString(), context);
postBusEventFromTransaction(tagDefinition, tagDefinition, ChangeType.DELETE, entitySqlDaoWrapperFactory, context);
return null;
diff --git a/util/src/main/java/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.java b/util/src/main/java/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.java
index 7f46ebe..8603f3d 100644
--- a/util/src/main/java/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.java
+++ b/util/src/main/java/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.java
@@ -20,13 +20,13 @@ import java.util.Collection;
import java.util.List;
import org.skife.jdbi.v2.sqlobject.Bind;
+import org.skife.jdbi.v2.sqlobject.BindBean;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import com.ning.billing.util.audit.ChangeType;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.callcontext.InternalTenantContextBinder;
import com.ning.billing.util.entity.dao.Audited;
import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoStringTemplate;
@@ -37,18 +37,18 @@ public interface TagDefinitionSqlDao extends EntitySqlDao<TagDefinitionModelDao,
@SqlQuery
public TagDefinitionModelDao getByName(@Bind("name") final String definitionName,
- @InternalTenantContextBinder final InternalTenantContext context);
+ @BindBean final InternalTenantContext context);
@SqlUpdate
@Audited(ChangeType.DELETE)
- public void deleteTagDefinition(@Bind("id") final String definitionId,
- @InternalTenantContextBinder final InternalCallContext context);
+ public void markTagDefinitionAsDeleted(@Bind("id") final String definitionId,
+ @BindBean final InternalCallContext context);
@SqlQuery
public int tagDefinitionUsageCount(@Bind("id") final String definitionId,
- @InternalTenantContextBinder final InternalTenantContext context);
+ @BindBean final InternalTenantContext context);
@SqlQuery
public List<TagDefinitionModelDao> getByIds(@UUIDCollectionBinder final Collection<String> definitionIds,
- @InternalTenantContextBinder final InternalTenantContext context);
+ @BindBean final InternalTenantContext context);
}
diff --git a/util/src/main/java/com/ning/billing/util/tag/dao/TagSqlDao.java b/util/src/main/java/com/ning/billing/util/tag/dao/TagSqlDao.java
index acfe66e..2455417 100644
--- a/util/src/main/java/com/ning/billing/util/tag/dao/TagSqlDao.java
+++ b/util/src/main/java/com/ning/billing/util/tag/dao/TagSqlDao.java
@@ -25,8 +25,10 @@ import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import com.ning.billing.ObjectType;
+import com.ning.billing.util.audit.ChangeType;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.entity.dao.Audited;
import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoStringTemplate;
import com.ning.billing.util.tag.Tag;
@@ -35,8 +37,9 @@ import com.ning.billing.util.tag.Tag;
public interface TagSqlDao extends EntitySqlDao<TagModelDao, Tag> {
@SqlUpdate
- void deleteById(@Bind("id") UUID id,
- @BindBean InternalCallContext context);
+ @Audited(ChangeType.DELETE)
+ void markTagAsDeleted(@Bind("id") String tagId,
+ @BindBean InternalCallContext context);
@SqlQuery
List<TagModelDao> getTagsForObject(@Bind("objectId") UUID objectId,
diff --git a/util/src/main/resources/com/ning/billing/util/ddl.sql b/util/src/main/resources/com/ning/billing/util/ddl.sql
index 2a1edb7..291b753 100644
--- a/util/src/main/resources/com/ning/billing/util/ddl.sql
+++ b/util/src/main/resources/com/ning/billing/util/ddl.sql
@@ -47,6 +47,7 @@ CREATE TABLE tag_definitions (
id char(36) NOT NULL,
name varchar(20) NOT NULL,
description varchar(200) NOT NULL,
+ is_active bool DEFAULT true,
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
updated_by varchar(50) NOT NULL,
@@ -65,6 +66,7 @@ CREATE TABLE tag_definition_history (
target_record_id int(11) unsigned NOT NULL,
name varchar(30) NOT NULL,
description varchar(200),
+ is_active bool DEFAULT true,
change_type char(6) NOT NULL,
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
@@ -86,6 +88,7 @@ CREATE TABLE tags (
tag_definition_id char(36) NOT NULL,
object_id char(36) NOT NULL,
object_type varchar(30) NOT NULL,
+ is_active bool DEFAULT true,
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
updated_by varchar(50) NOT NULL,
@@ -107,6 +110,7 @@ CREATE TABLE tag_history (
object_id char(36) NOT NULL,
object_type varchar(30) NOT NULL,
tag_definition_id char(36) NOT NULL,
+ is_active bool DEFAULT true,
change_type char(6) NOT NULL,
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
diff --git a/util/src/main/resources/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg b/util/src/main/resources/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
index 9492ebd..6c2b883 100644
--- a/util/src/main/resources/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
+++ b/util/src/main/resources/com/ning/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
@@ -24,34 +24,42 @@ accountRecordIdFieldWithComma() ::= ""
accountRecordIdValueWithComma() ::= ""
-
historyTableName() ::= "tag_definition_history"
-deleteTagDefinition() ::= <<
- DELETE FROM tag_definitions
- WHERE id = :id
- <AND_CHECK_TENANT()>
- ;
+markTagDefinitionAsDeleted() ::= <<
+update <tableName()> t
+set is_active = 0
+where <idField("t.")> = :id
+<AND_CHECK_TENANT("t.")>
+;
>>
tagDefinitionUsageCount() ::= <<
- SELECT COUNT(id)
- FROM tags
- WHERE tag_definition_id = :id
- <AND_CHECK_TENANT()>
+select
+ count(<idField("t.")>)
+from tags t
+where t.is_active
+and t.tag_definition_id = :id
+<AND_CHECK_TENANT("t.")>
+;
>>
getByName() ::= <<
- SELECT <allTableFields()>
- FROM tag_definitions
- WHERE name = :name
- <AND_CHECK_TENANT()>
- ;
+select
+ <allTableFields("t.")>
+from <tableName()> t
+where t.name = :name
+and t.is_active
+<AND_CHECK_TENANT("t.")>
+;
>>
getByIds(tag_definition_ids) ::= <<
- SELECT <allTableFields()>
- FROM tag_definitions
- WHERE id IN (<tag_definition_ids: {id | :id_<i0>}; separator="," >)
- <AND_CHECK_TENANT()>
+select
+ <allTableFields("t.")>
+from <tableName()> t
+where t.is_active
+and <idField("t.")> in (<tag_definition_ids: {id | :id_<i0>}; separator="," >)
+<AND_CHECK_TENANT("t.")>
+;
>>
diff --git a/util/src/main/resources/com/ning/billing/util/tag/dao/TagSqlDao.sql.stg b/util/src/main/resources/com/ning/billing/util/tag/dao/TagSqlDao.sql.stg
index 3dd5e0f..87d1fe2 100644
--- a/util/src/main/resources/com/ning/billing/util/tag/dao/TagSqlDao.sql.stg
+++ b/util/src/main/resources/com/ning/billing/util/tag/dao/TagSqlDao.sql.stg
@@ -24,50 +24,21 @@ tableValues() ::= <<
historyTableName() ::= "tag_history"
-deleteById() ::= <<
-delete from <tableName()>
-where id = :id
-<AND_CHECK_TENANT()>
+markTagAsDeleted() ::= <<
+update <tableName()> t
+set is_active = 0
+where <idField("t.")> = :id
+<AND_CHECK_TENANT("t.")>
;
>>
getTagsForObject() ::= <<
select
-<allTableFields()>
-from <tableName()>
-where
-object_id = :objectId AND object_type = :objectType
-<AND_CHECK_TENANT()>
+ <allTableFields("t.")>
+from <tableName()> t
+where t.is_active
+and t.object_id = :objectId
+and t.object_type = :objectType
+<AND_CHECK_TENANT("t.")>
;
>>
-
-findTag() ::= <<
- SELECT <fields()> FROM tags
- WHERE tag_definition_id = :tagDefinitionId
- AND object_id = :objectId AND object_type = :objectType
- <AND_CHECK_TENANT()>
- ;
->>
-
-getRecordIds() ::= <<
- SELECT record_id, id
- FROM tags
- WHERE object_id = :objectId AND object_type = :objectType
- <AND_CHECK_TENANT()>
- ;
->>
-
-getHistoryRecordIds() ::= <<
- SELECT history_record_id, record_id
- FROM tag_history
- WHERE history_record_id > :maxHistoryRecordId
- <AND_CHECK_TENANT()>
- ;
->>
-
-load() ::= <<
- SELECT <fields()>
- FROM tags
- WHERE object_id = :objectId AND object_type = :objectType
- <AND_CHECK_TENANT()>;
->>