列出基类实例而不获取继承的实例

时间:2014-08-02 00:21:58

标签: spring-roo

我是Roo的新手,这是我的第一个勘探项目基地:

// Spring Roo 1.2.5.RELEASE [rev 8341dc2] log opened at 2014-07-28 18:39:08
project --topLevelPackage this.is.my.package --projectName my-project
entity jpa --class ~.domain.Equipment --testAutomatically --activeRecord --inheritanceType JOINED 
field string --fieldName name
field string --fieldName weight
field number --type int --fieldName cost
field enum --fieldName coinType --type ~.domain.CoinType
entity jpa --class ~.domain.Armor --extends ~.domain.Equipment --testAutomatically  --activeRecord
field enum --fieldName category --type ~.domain.ArmorCategory --notNull --column CATEGORY
field number --type int --fieldName bonus --class ~.domain.Armor --value 0 
perform tests
web mvc setup
web mvc all --package ~.web
exit

当我运行应用程序时,我创建并保存了一个装甲实例。列出设备列表时,我可以看到我新创建的装甲,我甚至可以将其编辑为设备类。但是,当我尝试保存时,我收到了错误。

这是我的问题:如何防止装甲的实例被列入"设备"部分只显示在他们自己的部分:"护甲"部分?我的意思是,实现它的最佳方法是什么?

注意:设备类可以单独使用,这就是它不是抽象类的原因。稍后,我将创建其他子类设备。

由于

第一手解决方案(编辑后)

  1. 我创建了一个名为Gear的新抽象类,其中包含所有设备的属性。
  2. 我更新了Equipment类以删除其所有属性。我还将@RooJpaActiveRecord(inheritanceType = "JOINED")注释从Equipment类移到了Gear类。我还将其类型更改为" TABLE_PER_CLASS"。
  3. 最后,我更新了装备和武器类,以使用Gear类作为基类。
  4. 我运行了以下命令:

    perform tests
    web mvc setup
    web mvc all --package ~.web
    exit
    

    然后我使用众所周知的mvn tomcat:run

    运行应用程序

    现在,在创建了一些武器后,我将List all Equipments链接剔除,它是空的;就像我预期的那样。只有当我点击List all Armors链接时,我才能看到这些武器。

    我并不认为这是最好的方法,但它有效。有人有更好的解决方案吗?

0 个答案:

没有答案