我正在使用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