killbill-aplcache

added UpdatableEntity to remove update() from dao classes

3/5/2012 2:05:42 PM

Changes

Details

diff --git a/account/src/main/java/com/ning/billing/account/dao/AccountDao.java b/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
index 74a8d51..774a1e6 100644
--- a/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
+++ b/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
@@ -20,8 +20,9 @@ import java.util.UUID;
 import com.ning.billing.account.api.Account;
 import com.ning.billing.account.api.AccountApiException;
 import com.ning.billing.util.entity.EntityDao;
+import com.ning.billing.util.entity.UpdatableEntityDao;
 
-public interface AccountDao extends EntityDao<Account> {
+public interface AccountDao extends UpdatableEntityDao<Account> {
     public Account getAccountByKey(String key);
 
     /***
diff --git a/account/src/main/java/com/ning/billing/account/dao/AccountSqlDao.java b/account/src/main/java/com/ning/billing/account/dao/AccountSqlDao.java
index 2eefcf0..3fb159f 100644
--- a/account/src/main/java/com/ning/billing/account/dao/AccountSqlDao.java
+++ b/account/src/main/java/com/ning/billing/account/dao/AccountSqlDao.java
@@ -27,6 +27,7 @@ import java.sql.Timestamp;
 import java.util.Date;
 import java.util.UUID;
 
+import com.ning.billing.util.entity.UpdatableEntityDao;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.skife.jdbi.v2.SQLStatement;
@@ -51,7 +52,7 @@ import com.ning.billing.util.entity.EntityDao;
 
 @ExternalizedSqlViaStringTemplate3
 @RegisterMapper({UuidMapper.class, AccountSqlDao.AccountMapper.class})
-public interface AccountSqlDao extends EntityDao<Account>, Transactional<AccountSqlDao>, Transmogrifier {
+public interface AccountSqlDao extends UpdatableEntityDao<Account>, Transactional<AccountSqlDao>, Transmogrifier {
     @SqlQuery
     public Account getAccountByKey(@Bind("externalKey") final String key);
 
diff --git a/api/src/main/java/com/ning/billing/account/api/Account.java b/api/src/main/java/com/ning/billing/account/api/Account.java
index 68909c3..9f5ad02 100644
--- a/api/src/main/java/com/ning/billing/account/api/Account.java
+++ b/api/src/main/java/com/ning/billing/account/api/Account.java
@@ -16,13 +16,14 @@
 
 package com.ning.billing.account.api;
 
+import com.ning.billing.util.entity.UpdatableEntity;
 import org.joda.time.DateTime;
 
 import com.ning.billing.util.customfield.CustomizableEntity;
 import com.ning.billing.util.tag.Taggable;
+import org.skife.jdbi.v2.Update;
 
-public interface Account extends AccountData, CustomizableEntity, Taggable {
-
+public interface Account extends AccountData, CustomizableEntity, UpdatableEntity, Taggable {
     public DateTime getCreatedDate();
 
     public DateTime getUpdatedDate();
diff --git a/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java b/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java
index b947762..5cdf0de 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java
@@ -34,6 +34,4 @@ public interface InvoicePayment {
     Currency getCurrency();
 
     DateTime getCreatedDate();
-
-    DateTime getUpdatedDate();
 }
diff --git a/api/src/main/java/com/ning/billing/util/entity/UpdatableEntity.java b/api/src/main/java/com/ning/billing/util/entity/UpdatableEntity.java
new file mode 100644
index 0000000..8805d6b
--- /dev/null
+++ b/api/src/main/java/com/ning/billing/util/entity/UpdatableEntity.java
@@ -0,0 +1,4 @@
+package com.ning.billing.util.entity;
+
+public interface UpdatableEntity extends Entity {
+}
diff --git a/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java b/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java
index 1e17866..f6c2388 100644
--- a/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java
+++ b/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java
@@ -16,10 +16,9 @@
 
 package com.ning.billing.util.tag;
 
-import org.joda.time.DateTime;
-import com.ning.billing.util.entity.Entity;
+import com.ning.billing.util.entity.UpdatableEntity;
 
-public interface TagDefinition extends Entity {
+public interface TagDefinition extends UpdatableEntity {
     String getName();
 
     String getCreatedBy();
diff --git a/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java b/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
index 4d99525..ca716ef 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
@@ -72,7 +72,7 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
 
     @Override
     public void notifyOfPaymentAttempt(UUID invoiceId, BigDecimal amount, Currency currency, UUID paymentAttemptId, DateTime paymentAttemptDate) {
-        InvoicePayment invoicePayment = new DefaultInvoicePayment(paymentAttemptId, invoiceId, paymentAttemptDate, amount, currency, null, null);
+        InvoicePayment invoicePayment = new DefaultInvoicePayment(paymentAttemptId, invoiceId, paymentAttemptDate, amount, currency, null);
         dao.notifyOfPaymentAttempt(invoicePayment);
     }
 
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.java
index 9fc593c..6fdd74d 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.java
@@ -61,10 +61,6 @@ public interface FixedPriceInvoiceItemSqlDao extends EntityDao<InvoiceItem> {
     @SqlUpdate
     void create(@FixedPriceInvoiceItemBinder final InvoiceItem invoiceItem);
 
-    @Override
-    @SqlUpdate
-    void update(@FixedPriceInvoiceItemBinder final InvoiceItem invoiceItem);
-
     @SqlBatch
     void create(@FixedPriceInvoiceItemBinder final List<InvoiceItem> items);
 
@@ -89,7 +85,6 @@ public interface FixedPriceInvoiceItemSqlDao extends EntityDao<InvoiceItem> {
                         q.bind("amount", item.getAmount());
                         q.bind("currency", item.getCurrency().toString());
                         q.bind("createdDate", item.getCreatedDate().toDate());
-                        q.bind("updatedDate", item.getUpdatedDate().toDate());
                     }
                 };
             }
@@ -109,10 +104,9 @@ public interface FixedPriceInvoiceItemSqlDao extends EntityDao<InvoiceItem> {
             BigDecimal amount = result.getBigDecimal("amount");
             Currency currency = Currency.valueOf(result.getString("currency"));
             DateTime createdDate = new DateTime(result.getTimestamp("created_date"));
-            DateTime updatedDate = new DateTime(result.getTimestamp("updated_date"));
 
             return new FixedPriceInvoiceItem(id, invoiceId, subscriptionId, planName, phaseName,
-                                            startDate, endDate, amount, currency, createdDate, updatedDate);
+                                            startDate, endDate, amount, currency, createdDate);
         }
     }
 }
\ No newline at end of file
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
index 7179ec1..b8c9438 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
@@ -33,7 +33,13 @@ import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.skife.jdbi.v2.SQLStatement;
 import org.skife.jdbi.v2.StatementContext;
-import org.skife.jdbi.v2.sqlobject.*;
+import org.skife.jdbi.v2.sqlobject.Bind;
+import org.skife.jdbi.v2.sqlobject.Binder;
+import org.skife.jdbi.v2.sqlobject.BinderFactory;
+import org.skife.jdbi.v2.sqlobject.BindingAnnotation;
+import org.skife.jdbi.v2.sqlobject.SqlBatch;
+import org.skife.jdbi.v2.sqlobject.SqlQuery;
+import org.skife.jdbi.v2.sqlobject.SqlUpdate;
 import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
 import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
 import org.skife.jdbi.v2.tweak.ResultSetMapper;
@@ -55,9 +61,6 @@ public interface InvoicePaymentSqlDao {
     @SqlBatch(transactional=false)
     void batchCreateFromTransaction(@InvoicePaymentBinder List<InvoicePayment> items);
 
-    @SqlUpdate
-    public void update(@InvoicePaymentBinder  InvoicePayment invoicePayment);
-
     @SqlQuery
     public List<InvoicePayment> getPaymentsForInvoice(@Bind("invoiceId") String invoiceId);
 
@@ -82,11 +85,8 @@ public interface InvoicePaymentSqlDao {
             final String currencyString = result.getString("currency");
             final Currency currency = (currencyString == null) ? null : Currency.valueOf(currencyString);
             final DateTime createdDate = getDate(result, "created_date");
-            final DateTime updatedDate = getDate(result, "updated_date");
 
             return new InvoicePayment() {
-                private final  DateTime now = new DateTime();
-
                 @Override
                 public UUID getPaymentAttemptId() {
                     return paymentAttemptId;
@@ -111,10 +111,6 @@ public interface InvoicePaymentSqlDao {
                 public DateTime getCreatedDate() {
                     return createdDate ;
                 }
-                @Override
-                public DateTime getUpdatedDate() {
-                    return updatedDate;
-                }
             };
         }
     }
@@ -137,8 +133,6 @@ public interface InvoicePaymentSqlDao {
                         q.bind("currency", (currency == null) ? null : currency.toString());
                         DateTime createdDate = payment.getCreatedDate();
                         q.bind("createdDate", (createdDate == null) ? new DateTime().toDate() : createdDate.toDate());
-                        DateTime updatedDate = payment.getUpdatedDate();
-                        q.bind("updatedDate", (updatedDate == null) ? new DateTime().toDate() : updatedDate.toDate());
                     }
                 };
             }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
index 05be556..101af71 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
@@ -56,10 +56,6 @@ public interface InvoiceSqlDao extends EntityDao<Invoice>, Transactional<Invoice
     @SqlUpdate
     void create(@InvoiceBinder Invoice invoice);
 
-    @Override
-    @SqlUpdate
-    void update(@InvoiceBinder Invoice invoice);
-
     @SqlQuery
     List<Invoice> getInvoicesByAccount(@Bind("accountId") final String accountId);
 
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.java
index 053eca4..d588cb1 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.java
@@ -61,10 +61,6 @@ public interface RecurringInvoiceItemSqlDao extends EntityDao<InvoiceItem> {
     @SqlUpdate
     void create(@RecurringInvoiceItemBinder final InvoiceItem invoiceItem);
 
-    @Override
-    @SqlUpdate
-    void update(@RecurringInvoiceItemBinder final InvoiceItem invoiceItem);
-
     @SqlBatch(transactional = false)
     void batchCreateFromTransaction(@RecurringInvoiceItemBinder final List<InvoiceItem> items);
 
@@ -90,7 +86,6 @@ public interface RecurringInvoiceItemSqlDao extends EntityDao<InvoiceItem> {
                         q.bind("currency", item.getCurrency().toString());
                         q.bind("reversedItemId", (item.getReversedItemId() == null) ? null : item.getReversedItemId().toString());
                         q.bind("createdDate", item.getCreatedDate().toDate());
-                        q.bind("updatedDate", item.getUpdatedDate().toDate());
                     }
                 };
             }
@@ -113,10 +108,9 @@ public interface RecurringInvoiceItemSqlDao extends EntityDao<InvoiceItem> {
             String reversedItemString = result.getString("reversed_item_id");
             UUID reversedItemId = (reversedItemString == null) ? null : UUID.fromString(reversedItemString);
             DateTime createdDate = new DateTime(result.getTimestamp("created_date"));
-            DateTime updatedDate = new DateTime(result.getTimestamp("updated_date"));
 
             return new RecurringInvoiceItem(id, invoiceId, subscriptionId, planName, phaseName, startDate, endDate,
-                    amount, rate, currency, reversedItemId, createdDate, updatedDate);
+                    amount, rate, currency, reversedItemId, createdDate);
         }
     }
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
index 2d58ecf..9d92537 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
@@ -42,7 +42,6 @@ import javax.annotation.Nullable;
 public class DefaultInvoiceGenerator implements InvoiceGenerator {
     private static final int ROUNDING_MODE = InvoicingConfiguration.getRoundingMode();
     private static final int NUMBER_OF_DECIMALS = InvoicingConfiguration.getNumberOfDecimals();
-    //private static final Logger log = LoggerFactory.getLogger(DefaultInvoiceGenerator.class);
 
     private final Clock clock;
 
@@ -190,7 +189,7 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
                                 thisEvent.getPlan().getName(),
                                 thisEvent.getPlanPhase().getName(),
                                 itemDatum.getStartDate(), itemDatum.getEndDate(),
-                                amount, rate, currency, clock.getUTCNow(), clock.getUTCNow());
+                                amount, rate, currency, clock.getUTCNow());
                         items.add(recurringItem);
                     }
                 }
@@ -224,7 +223,7 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
                     fixedPriceInvoiceItem = new FixedPriceInvoiceItem(invoiceId, thisEvent.getSubscription().getId(),
                             thisEvent.getPlan().getName(), thisEvent.getPlanPhase().getName(),
                             thisEvent.getEffectiveDate(), endDate, fixedPrice, currency,
-                            clock.getUTCNow(), clock.getUTCNow());
+                            clock.getUTCNow());
                 } catch (CatalogApiException e) {
                     throw new InvoiceApiException(e, ErrorCode.CAT_NO_PRICE_FOR_CURRENCY, currency.toString());
                 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java
index 6760481..a0f518a 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java
@@ -31,36 +31,34 @@ public class DefaultInvoicePayment implements InvoicePayment {
     private final BigDecimal amount;
     private final Currency currency;
     private final DateTime createdDate;
-    private final DateTime updatedDate;
 
     public DefaultInvoicePayment(final UUID invoiceId, final DateTime paymentDate) {
-        this(UUID.randomUUID(), invoiceId, paymentDate, null, null, null, null);
+        this(UUID.randomUUID(), invoiceId, paymentDate, null, null, null);
     }
 
     public DefaultInvoicePayment(final UUID paymentAttemptId, final UUID invoiceId, final DateTime paymentDate) {
-        this(paymentAttemptId, invoiceId, paymentDate, null, null, null, null);
+        this(paymentAttemptId, invoiceId, paymentDate, null, null, null);
     }
 
     public DefaultInvoicePayment(final UUID invoiceId, final DateTime paymentDate,
                                  final BigDecimal amount, final Currency currency) {
-        this(UUID.randomUUID(), invoiceId, paymentDate, amount, currency, null, null);
+        this(UUID.randomUUID(), invoiceId, paymentDate, amount, currency, null);
     }
 
     public DefaultInvoicePayment(final UUID paymentAttemptId, final UUID invoiceId, final DateTime paymentDate,
                                  final BigDecimal amount, final Currency currency) {
-        this(paymentAttemptId, invoiceId, paymentDate, amount, currency, null, null);
+        this(paymentAttemptId, invoiceId, paymentDate, amount, currency, null);
     }
 
     public DefaultInvoicePayment(final UUID paymentAttemptId, final UUID invoiceId, final DateTime paymentDate,
                                  @Nullable final BigDecimal amount, @Nullable final Currency currency,
-                                 @Nullable final DateTime createdDate, @Nullable final DateTime updatedDate) {
+                                 @Nullable final DateTime createdDate) {
         this.paymentAttemptId = paymentAttemptId;
         this.amount = amount;
         this.invoiceId = invoiceId;
         this.paymentDate = paymentDate;
         this.currency = currency;
         this.createdDate = (createdDate == null) ? new DateTime() : createdDate;
-        this.updatedDate = (updatedDate == null) ? new DateTime() : updatedDate;
     }
 
     @Override
@@ -92,9 +90,4 @@ public class DefaultInvoicePayment implements InvoicePayment {
     public DateTime getCreatedDate() {
         return createdDate;
     }
-
-    @Override
-    public DateTime getUpdatedDate() {
-        return updatedDate;
-    }
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java b/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
index f53c1a3..4a1bc1d 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
@@ -26,14 +26,14 @@ import java.util.UUID;
 public class FixedPriceInvoiceItem extends InvoiceItemBase {
     public FixedPriceInvoiceItem(UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
                                  DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency,
-                                 DateTime createdDate, DateTime updatedDate) {
-        super(invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate, updatedDate);
+                                 DateTime createdDate) {
+        super(invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate);
     }
 
     public FixedPriceInvoiceItem(UUID id, UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
                                  DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency,
-                                 DateTime createdDate, DateTime updatedDate) {
-        super(id, invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate, updatedDate);
+                                 DateTime createdDate) {
+        super(id, invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate);
     }
 
     @Override
@@ -77,31 +77,23 @@ public class FixedPriceInvoiceItem extends InvoiceItemBase {
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
+        sb.append("InvoiceItem = {").append("id = ").append(id.toString()).append(", ");
+        sb.append("invoiceId = ").append(invoiceId.toString()).append(", ");
+        sb.append("subscriptionId = ").append(subscriptionId.toString()).append(", ");
+        sb.append("planName = ").append(planName).append(", ");
+        sb.append("phaseName = ").append(phaseName).append(", ");
+        sb.append("startDate = ").append(startDate.toString()).append(", ");
+        sb.append("endDate = ").append(endDate.toString()).append(", ");
+
+        sb.append("amount = ");
+        if (amount == null) {
+            sb.append("null");
+        } else {
+            sb.append(amount.toString());
+        }
 
-        sb.append(phaseName).append(", ");
-        sb.append(startDate.toString()).append(", ");
-        sb.append(endDate.toString()).append(", ");
-        sb.append(amount.toString()).append(", ");
-
+        sb.append("}");
         return sb.toString();
-//        StringBuilder sb = new StringBuilder();
-//        sb.append("InvoiceItem = {").append("id = ").append(id.toString()).append(", ");
-//        sb.append("invoiceId = ").append(invoiceId.toString()).append(", ");
-//        sb.append("subscriptionId = ").append(subscriptionId.toString()).append(", ");
-//        sb.append("planName = ").append(planName).append(", ");
-//        sb.append("phaseName = ").append(phaseName).append(", ");
-//        sb.append("startDate = ").append(startDate.toString()).append(", ");
-//        sb.append("endDate = ").append(endDate.toString()).append(", ");
-//
-//        sb.append("amount = ");
-//        if (amount == null) {
-//            sb.append("null");
-//        } else {
-//            sb.append(amount.toString());
-//        }
-//
-//        sb.append("}");
-//        return sb.toString();
     }
 
     @Override
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java b/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java
index 924ed0c..6f69e33 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java
@@ -34,18 +34,17 @@ public abstract class InvoiceItemBase implements InvoiceItem {
     protected final BigDecimal amount;
     protected final Currency currency;
     protected final DateTime createdDate;
-    protected final DateTime updatedDate;
 
     public InvoiceItemBase(UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
                            DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency,
-                           DateTime createdDate, DateTime updatedDate) {
+                           DateTime createdDate) {
         this(UUID.randomUUID(), invoiceId, subscriptionId, planName, phaseName,
-                startDate, endDate, amount, currency, createdDate, updatedDate);
+                startDate, endDate, amount, currency, createdDate);
     }
 
     public InvoiceItemBase(UUID id, UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
                            DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency,
-                           DateTime createdDate, DateTime updatedDate) {
+                           DateTime createdDate) {
         this.id = id;
         this.invoiceId = invoiceId;
         this.subscriptionId = subscriptionId;
@@ -56,17 +55,12 @@ public abstract class InvoiceItemBase implements InvoiceItem {
         this.amount = amount;
         this.currency = currency;
         this.createdDate = createdDate;
-        this.updatedDate = updatedDate;
     }
 
     public DateTime getCreatedDate() {
         return createdDate;
     }
 
-    public DateTime getUpdatedDate() {
-        return updatedDate;
-    }
-
     @Override
     public UUID getId() {
         return id;
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java b/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java
index db73939..8c7517e 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java
@@ -31,26 +31,26 @@ public class RecurringInvoiceItem extends InvoiceItemBase {
                                 DateTime startDate, DateTime endDate,
                                 BigDecimal amount, BigDecimal rate,
                                 Currency currency,
-                                DateTime createdDate, DateTime updatedDate) {
+                                DateTime createdDate) {
         this(UUID.randomUUID(), invoiceId, subscriptionId, planName, phaseName, startDate, endDate,
-                amount, rate, currency, createdDate, updatedDate);
+                amount, rate, currency, createdDate);
     }
 
     public RecurringInvoiceItem(UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
                                 DateTime startDate, DateTime endDate,
                                 BigDecimal amount, BigDecimal rate,
                                 Currency currency, UUID reversedItemId,
-                                DateTime createdDate, DateTime updatedDate) {
+                                DateTime createdDate) {
         this(UUID.randomUUID(), invoiceId, subscriptionId, planName, phaseName, startDate, endDate,
-                amount, rate, currency, reversedItemId, createdDate, updatedDate);
+                amount, rate, currency, reversedItemId, createdDate);
     }
 
     public RecurringInvoiceItem(UUID id, UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
                                 DateTime startDate, DateTime endDate,
                                 BigDecimal amount, BigDecimal rate,
                                 Currency currency,
-                                DateTime createdDate, DateTime updatedDate) {
-        super(id, invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate, updatedDate);
+                                DateTime createdDate) {
+        super(id, invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate);
 
         this.rate = rate;
         this.reversedItemId = null;
@@ -60,8 +60,8 @@ public class RecurringInvoiceItem extends InvoiceItemBase {
                                 DateTime startDate, DateTime endDate,
                                 BigDecimal amount, BigDecimal rate,
                                 Currency currency, UUID reversedItemId,
-                                DateTime createdDate, DateTime updatedDate) {
-        super(id, invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate, updatedDate);
+                                DateTime createdDate) {
+        super(id, invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate);
 
         this.rate = rate;
         this.reversedItemId = reversedItemId;
@@ -71,7 +71,7 @@ public class RecurringInvoiceItem extends InvoiceItemBase {
     public InvoiceItem asCredit() {
         BigDecimal amountNegated = amount == null ? null : amount.negate();
         return new RecurringInvoiceItem(invoiceId, subscriptionId, planName, phaseName, startDate, endDate,
-                amountNegated, rate, currency, id, createdDate, updatedDate);
+                amountNegated, rate, currency, id, createdDate);
     }
 
     @Override
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.sql.stg
index c1d14ef..61f5e68 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/FixedPriceInvoiceItemSqlDao.sql.stg
@@ -10,8 +10,7 @@ fields(prefix) ::= <<
   <prefix>end_date,
   <prefix>amount,
   <prefix>currency,
-  <prefix>created_date,
-  <prefix>updated_date
+  <prefix>created_date
 >>
 
 getById() ::= <<
@@ -42,20 +41,13 @@ getInvoiceItemsBySubscription() ::= <<
 create() ::= <<
   INSERT INTO fixed_invoice_items(<fields()>)
   VALUES(:id, :invoiceId, :subscriptionId, :planName, :phaseName,
-         :startDate, :endDate, :amount, :currency, :createdDate, :updatedDate);
+         :startDate, :endDate, :amount, :currency, :createdDate);
 >>
 
 batchCreateFromTransaction() ::= <<
   INSERT INTO fixed_invoice_items(<fields()>)
   VALUES(:id, :invoiceId, :subscriptionId, :planName, :phaseName,
-         :startDate, :endDate, :amount, :currency, :createdDate, :updatedDate);
->>
-
-update() ::= <<
-  UPDATE fixed_invoice_items
-  SET invoice_id = :invoiceId, subscription_id = :subscriptionId, plan_name = :planName, phase_name = :phaseName,
-      start_date = :startDate, end_date = :endDate, amount = :amount, currency = :currency, updated_date = :updatedDate
-  WHERE id = :id;
+         :startDate, :endDate, :amount, :currency, :createdDate);
 >>
 
 test() ::= <<
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
index 2172573..5e1586e 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
@@ -6,25 +6,17 @@ invoicePaymentFields(prefix) ::= <<
   <prefix>payment_attempt_date,
   <prefix>amount,
   <prefix>currency,
-  <prefix>created_date,
-  <prefix>updated_date
+  <prefix>created_date
 >>
 
 create() ::= <<
   INSERT INTO invoice_payments(<invoicePaymentFields()>)
-  VALUES(:invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency, :createdDate, :updatedDate);
+  VALUES(:invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency, :createdDate);
 >>
 
 batchCreateFromTransaction() ::= <<
   INSERT INTO invoice_payments(<invoicePaymentFields()>)
-  VALUES(:invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency, :createdDate, :updatedDate);
->>
-
-
-update() ::= <<
-  UPDATE invoice_payments
-  SET payment_date = :paymentAttemptDate, amount = :amount, currency = :currency, created_date = :createdDate, updated_date = :updatedDate
-  WHERE invoice_id = :invoiceId, payment_attempt_id = :paymentAttemptId;
+  VALUES(:invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency, :createdDate);
 >>
 
 getByPaymentAttemptId() ::= <<
@@ -46,7 +38,7 @@ getPaymentsForInvoice() ::= <<
 
 notifyOfPaymentAttempt() ::= <<
   INSERT INTO invoice_payments(<invoicePaymentFields()>)
-  VALUES(:invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency, NOW(), NOW());
+  VALUES(:invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency, NOW());
 >>
 
 getInvoicePayment() ::= <<
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.sql.stg
index 0fcbae1..e703d0b 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/RecurringInvoiceItemSqlDao.sql.stg
@@ -12,8 +12,7 @@ fields(prefix) ::= <<
   <prefix>rate,
   <prefix>currency,
   <prefix>reversed_item_id,
-  <prefix>created_date,
-  <prefix>updated_date
+  <prefix>created_date
 >>
 
 getById() ::= <<
@@ -44,21 +43,13 @@ getInvoiceItemsBySubscription() ::= <<
 create() ::= <<
   INSERT INTO recurring_invoice_items(<fields()>)
   VALUES(:id, :invoiceId, :subscriptionId, :planName, :phaseName, :startDate, :endDate,
-         :amount, :rate, :currency, :reversedItemId, :createdDate, :updatedDate);
+         :amount, :rate, :currency, :reversedItemId, :createdDate);
 >>
 
 batchCreateFromTransaction() ::= <<
   INSERT INTO recurring_invoice_items(<fields()>)
   VALUES(:id, :invoiceId, :subscriptionId, :planName, :phaseName, :startDate, :endDate,
-         :amount, :rate, :currency, :reversedItemId, :createdDate, :updatedDate);
->>
-
-update() ::= <<
-  UPDATE recurring_invoice_items
-  SET invoice_id = :invoiceId, subscription_id = :subscriptionId, plan_name = :planName, phase_name = :phaseName,
-      start_date = :startDate, end_date = :endDate, amount = :amount, rate = :rate, currency = :currency,
-      reversed_item_id = :reversedItemId, updated_date = :updatedDate
-  WHERE id = :id;
+         :amount, :rate, :currency, :reversedItemId, :createdDate);
 >>
 
 test() ::= <<
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql b/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
index b9d3faa..c3be18d 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
+++ b/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
@@ -13,7 +13,6 @@ CREATE TABLE recurring_invoice_items (
   currency char(3) NOT NULL,
   reversed_item_id char(36),
   created_date datetime NOT NULL,
-  updated_date datetime NOT NULL,
   PRIMARY KEY(id)
 ) ENGINE=innodb;
 CREATE INDEX recurring_invoice_items_subscription_id ON recurring_invoice_items(subscription_id ASC);
@@ -31,7 +30,6 @@ CREATE TABLE fixed_invoice_items (
   amount numeric(10,4) NULL,
   currency char(3) NOT NULL,
   created_date datetime NOT NULL,
-  updated_date datetime NOT NULL,
   PRIMARY KEY(id)
 ) ENGINE=innodb;
 CREATE INDEX fixed_invoice_items_subscription_id ON fixed_invoice_items(subscription_id ASC);
@@ -58,7 +56,6 @@ CREATE TABLE invoice_payments (
   amount numeric(10,4),
   currency char(3),
   created_date datetime NOT NULL,
-  updated_date datetime NOT NULL,
   PRIMARY KEY(invoice_id, payment_attempt_id)
 ) ENGINE=innodb;
 CREATE UNIQUE INDEX invoice_payments_unique ON invoice_payments(invoice_id, payment_attempt_id);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
index 4f936fd..1760449 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
@@ -88,7 +88,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         DateTime startDate = new DateTime(2010, 1, 1, 0, 0, 0, 0);
         DateTime endDate = new DateTime(2010, 4, 1, 0, 0, 0, 0);
         InvoiceItem invoiceItem = new RecurringInvoiceItem(invoiceId, subscriptionId, "test plan", "test phase", startDate, endDate,
-                new BigDecimal("21.00"), new BigDecimal("7.00"), Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                new BigDecimal("21.00"), new BigDecimal("7.00"), Currency.USD, clock.getUTCNow());
         invoice.addInvoiceItem(invoiceItem);
         invoiceDao.create(invoice);
 
@@ -186,7 +186,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         BigDecimal amount = rate.multiply(new BigDecimal("3.0"));
 
         RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, subscriptionId, "test plan", "test phase", targetDate, endDate,
-                amount, rate, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                amount, rate, Currency.USD, clock.getUTCNow());
         invoice.addInvoiceItem(item);
         invoiceDao.create(invoice);
 
@@ -286,19 +286,19 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         DateTime endDate = startDate.plusMonths(1);
 
         RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoiceId1, subscriptionId1, "test plan", "test A", startDate, endDate,
-                rate1, rate1, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate1, rate1, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item1);
 
         RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoiceId1, subscriptionId2, "test plan", "test B", startDate, endDate,
-                rate2, rate2, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate2, rate2, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item2);
 
         RecurringInvoiceItem item3 = new RecurringInvoiceItem(invoiceId1, subscriptionId3, "test plan", "test C", startDate, endDate,
-                rate3, rate3, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate3, rate3, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item3);
 
         RecurringInvoiceItem item4 = new RecurringInvoiceItem(invoiceId1, subscriptionId4, "test plan", "test D", startDate, endDate,
-                rate4, rate4, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate4, rate4, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item4);
 
         // create invoice 2 (subscriptions 1-3)
@@ -311,15 +311,15 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         endDate = startDate.plusMonths(1);
 
         RecurringInvoiceItem item5 = new RecurringInvoiceItem(invoiceId2, subscriptionId1, "test plan", "test phase A", startDate, endDate,
-                rate1, rate1, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate1, rate1, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item5);
 
         RecurringInvoiceItem item6 = new RecurringInvoiceItem(invoiceId2, subscriptionId2, "test plan", "test phase B", startDate, endDate,
-                rate2, rate2, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate2, rate2, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item6);
 
         RecurringInvoiceItem item7 = new RecurringInvoiceItem(invoiceId2, subscriptionId3, "test plan", "test phase C", startDate, endDate,
-                rate3, rate3, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate3, rate3, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item7);
 
         // check that each subscription returns the correct number of invoices
@@ -379,11 +379,11 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         BigDecimal rate2 = new BigDecimal("42.0");
 
         RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoice1.getId(), UUID.randomUUID(), "test plan", "test phase A", startDate,
-                endDate, rate1, rate1, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                endDate, rate1, rate1, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item1);
 
         RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), UUID.randomUUID(), "test plan", "test phase B", startDate,
-                endDate, rate2, rate2, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                endDate, rate2, rate2, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item2);
 
         BigDecimal payment1 = new BigDecimal("48.0");
@@ -408,11 +408,11 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         BigDecimal rate2 = new BigDecimal("42.0");
 
         RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoice1.getId(), UUID.randomUUID(), "test plan", "test phase A", startDate, endDate,
-                rate1, rate1, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate1, rate1, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item1);
 
         RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), UUID.randomUUID(), "test plan", "test phase B", startDate, endDate,
-                rate2, rate2, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate2, rate2, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item2);
 
         BigDecimal balance = invoiceDao.getAccountBalance(accountId);
@@ -448,11 +448,11 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         BigDecimal rate2 = new BigDecimal("42.0");
 
         RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoice1.getId(), UUID.randomUUID(), "test plan", "test phase A", startDate, endDate,
-                rate1, rate1, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate1, rate1, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item1);
 
         RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), UUID.randomUUID(), "test plan", "test phase B", startDate, endDate,
-                rate2, rate2, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate2, rate2, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item2);
 
         DateTime upToDate;
@@ -476,7 +476,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         BigDecimal rate3 = new BigDecimal("21.0");
 
         RecurringInvoiceItem item3 = new RecurringInvoiceItem(invoice2.getId(), UUID.randomUUID(), "test plan", "test phase C", startDate2, endDate2,
-                rate3, rate3, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate3, rate3, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item3);
 
         upToDate = new DateTime(2011, 1, 1, 0, 0, 0, 0);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java
index 2f79c8b..9bcef4b 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java
@@ -47,7 +47,7 @@ public class InvoiceItemDaoTests extends InvoiceDaoTestBase {
 
         final DateTime expectedCreatedDate = clock.getUTCNow();
         RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, subscriptionId, "test plan", "test phase", startDate, endDate,
-                rate, rate, Currency.USD, expectedCreatedDate, expectedCreatedDate);
+                rate, rate, Currency.USD, expectedCreatedDate);
         recurringInvoiceItemDao.create(item);
 
         RecurringInvoiceItem thisItem = (RecurringInvoiceItem) recurringInvoiceItemDao.getById(item.getId().toString());
@@ -61,22 +61,6 @@ public class InvoiceItemDaoTests extends InvoiceDaoTestBase {
         assertEquals(thisItem.getRate().compareTo(item.getRate()), 0);
         assertEquals(thisItem.getCurrency(), item.getCurrency());
         assertEquals(thisItem.getCreatedDate(), item.getCreatedDate());
-        assertEquals(thisItem.getUpdatedDate(), item.getUpdatedDate());
-        assertEquals(thisItem.getUpdatedDate(), thisItem.getUpdatedDate());
-        assertEquals(thisItem.getUpdatedDate(), expectedCreatedDate);
-
-        // Try to update the object and check the updated_date column
-        final DateTime updatedDate = clock.getUTCNow().plusDays(10);
-        RecurringInvoiceItem expectedUpdatedItem = new RecurringInvoiceItem(invoiceId, subscriptionId, "test plan", "test phase", startDate, endDate,
-                rate, rate, Currency.USD, expectedCreatedDate, updatedDate);
-        recurringInvoiceItemDao.update(item);
-
-        RecurringInvoiceItem updatedItem = (RecurringInvoiceItem) recurringInvoiceItemDao.getById(item.getId().toString());
-        assertNotNull(updatedItem);
-        assertEquals(updatedItem.getId(), item.getId());
-        assertEquals(updatedItem.getCreatedDate(), item.getCreatedDate());
-        assertEquals(updatedItem.getUpdatedDate(), expectedUpdatedItem.getUpdatedDate());
-        assertEquals(updatedItem.getUpdatedDate(), updatedDate);
     }
 
     @Test(groups = "slow")
@@ -88,7 +72,7 @@ public class InvoiceItemDaoTests extends InvoiceDaoTestBase {
         for (int i = 0; i < 3; i++) {
             UUID invoiceId = UUID.randomUUID();
             RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, subscriptionId, "test plan", "test phase", startDate.plusMonths(i), startDate.plusMonths(i + 1),
-                    rate, rate, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                    rate, rate, Currency.USD, clock.getUTCNow());
             recurringInvoiceItemDao.create(item);
         }
 
@@ -106,7 +90,7 @@ public class InvoiceItemDaoTests extends InvoiceDaoTestBase {
             UUID subscriptionId = UUID.randomUUID();
             BigDecimal amount = rate.multiply(new BigDecimal(i + 1));
             RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, subscriptionId, "test plan", "test phase", startDate, startDate.plusMonths(1),
-                    amount, amount, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                    amount, amount, Currency.USD, clock.getUTCNow());
             recurringInvoiceItemDao.create(item);
         }
 
@@ -128,7 +112,7 @@ public class InvoiceItemDaoTests extends InvoiceDaoTestBase {
 
         UUID subscriptionId = UUID.randomUUID();
         RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, subscriptionId, "test plan", "test phase", startDate, startDate.plusMonths(1),
-                rate, rate, Currency.USD, clock.getUTCNow(), clock.getUTCNow());
+                rate, rate, Currency.USD, clock.getUTCNow());
         recurringInvoiceItemDao.create(item);
 
         List<InvoiceItem> items = recurringInvoiceItemDao.getInvoiceItemsByAccount(accountId.toString());
diff --git a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
index e6ae543..b970ba6 100644
--- a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
+++ b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
@@ -79,7 +79,6 @@ public abstract class TestPaymentApi {
                                                        amount,
                                                        new BigDecimal("1.0"),
                                                        Currency.USD,
-                                                       now,
                                                        now));
 
         List<Either<PaymentError, PaymentInfo>> results = paymentApi.createPayment(account.getExternalKey(), Arrays.asList(invoice.getId().toString()));
diff --git a/payment/src/test/java/com/ning/billing/payment/TestHelper.java b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
index 7d164b1..84c0197 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestHelper.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
@@ -94,8 +94,7 @@ public class TestHelper {
                                                                recurringInvoiceItem.getAmount(),
                                                                recurringInvoiceItem.getRate(),
                                                                recurringInvoiceItem.getCurrency(),
-                                                               recurringInvoiceItem.getCreatedDate(),
-                                                               recurringInvoiceItem.getUpdatedDate()));
+                                                               recurringInvoiceItem.getCreatedDate()));
             }
         }
         invoiceDao.create(invoice);
@@ -107,7 +106,7 @@ public class TestHelper {
         final UUID subscriptionId = UUID.randomUUID();
         final BigDecimal amount = new BigDecimal("10.00");
         final InvoiceItem item = new RecurringInvoiceItem(null, subscriptionId, "test plan", "test phase", now, now.plusMonths(1),
-                amount, new BigDecimal("1.0"), Currency.USD, now, now);
+                amount, new BigDecimal("1.0"), Currency.USD, now);
 
         return createTestInvoice(account, now, Currency.USD, item);
     }
diff --git a/util/src/main/java/com/ning/billing/util/entity/EntityDao.java b/util/src/main/java/com/ning/billing/util/entity/EntityDao.java
index 4ef7d03..1337950 100644
--- a/util/src/main/java/com/ning/billing/util/entity/EntityDao.java
+++ b/util/src/main/java/com/ning/billing/util/entity/EntityDao.java
@@ -29,9 +29,6 @@ public interface EntityDao<T extends Entity> {
     @SqlUpdate
     public void create(@BindBean final T entity) throws EntityPersistenceException;
 
-    @SqlUpdate
-    public void update(@BindBean final T entity) throws EntityPersistenceException;
-
     @SqlQuery
     public T getById(@Bind("id") final String id);
 
diff --git a/util/src/main/java/com/ning/billing/util/entity/UpdatableEntityDao.java b/util/src/main/java/com/ning/billing/util/entity/UpdatableEntityDao.java
new file mode 100644
index 0000000..da381f8
--- /dev/null
+++ b/util/src/main/java/com/ning/billing/util/entity/UpdatableEntityDao.java
@@ -0,0 +1,9 @@
+package com.ning.billing.util.entity;
+
+import org.skife.jdbi.v2.sqlobject.BindBean;
+import org.skife.jdbi.v2.sqlobject.SqlUpdate;
+
+public interface UpdatableEntityDao<T extends UpdatableEntity> extends EntityDao<T> {
+    @SqlUpdate
+    public void update(@BindBean final T entity) throws EntityPersistenceException;
+}
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 b2e7dab..86e1b5b 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
@@ -25,6 +25,7 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.UUID;
 import com.ning.billing.util.entity.EntityDao;
+import com.ning.billing.util.entity.UpdatableEntityDao;
 import com.ning.billing.util.tag.DefaultTagDefinition;
 import com.ning.billing.util.tag.TagDefinition;
 import org.joda.time.DateTime;
@@ -42,7 +43,7 @@ import org.skife.jdbi.v2.tweak.ResultSetMapper;
 
 @ExternalizedSqlViaStringTemplate3
 @RegisterMapper(TagDefinitionSqlDao.TagDefinitionMapper.class)
-public interface TagDefinitionSqlDao extends EntityDao<TagDefinition> {
+public interface TagDefinitionSqlDao extends UpdatableEntityDao<TagDefinition> {
     @Override
     @SqlUpdate
     public void create(@TagDefinitionBinder final TagDefinition entity);