我正在使用Grails創建發票管理應用程序,並且遇到繼承問題。從抽象類繼承屬性,並在抽象屬性上對集合進行排序
如果我的意圖是,每張發票都應該包含一行/項目集合,並且發票格式化爲打印時,項目按日期排序,按類別分成列表,然後確定每行的價格以不同的方式爲每個具體類型計算(定時項目將在費率屬性中查找每小時,在創建時,定價項目會被分配一個價格)。
節點發票有一個屬性「items」,它是Item對象的集合。
來源我的領域類:
invoiceInstance.items.add(new TimedItem(description:"waffle", minutes:60, date:new Date(),category:"OTHER"))
def firstList = []
def lastList = []
invoiceInstance.items.sort{it.date}
invoiceInstance.items.each(){
switch(((Item)it).category){
case "LETTER":
firstList.add(it)
break;
default:
lastList.add(it)
}
}
錯誤消息:
groovy.lang.MissingPropertyException:
class Invoice {
static constraints = {
}
String client
Date dateCreated
Date lastUpdated
CostProfile rates
def relatesToMany = [items : Item]
Set items = new HashSet()
}
abstract class Item{
static constraints = {
}
String description
Date date
enum category {SERVICE,GOODS,OTHER}
def belongsTo = Invoice
Invoice invoice
}
class TimedItem extends Item{
static constraints = {
}
int minutes
}
class PricedItem extends Item{
static constraints = {
}
BigDecimal cost
BigDecimal taxrate
}
問題代碼的來源沒有這樣的屬性:類別類: TimedItem
Stacktrace指示第6行上面的例子。
是否有原因轉換爲物品?這對我來說似乎沒有必要。 – Snake 2010-02-09 14:03:46