【发布时间】:2015-08-24 08:13:09
【问题描述】:
我确实找到了与此相关的问题,并且我也遇到了同样的问题。链接:Grails FindBy* with an inteface property
是的,我们不能将 Interface 属性更改为抽象属性。
我已经读到 findBy* 无法处理接口属性,但是关于我们如何继续处理的任何优雅提示?
关于型号:
interface InterfaceClass {
//method
}
class EnumClass implements InterfaceClass {
//implementation of method
}
class NonEnumDomain {
InterfaceClass interfaceClass
}
回到这个问题,还有关于 findBy 限制的站点链接。
NonEnumDomain.findByInterfaceClass(....) won't work.
如果社区需要知道:我们在这些接口属性上做了一些 UserType,因为它是一个 Enum 属性。
谢谢
【问题讨论】:
-
创建另一个实现你的接口的domian类,然后在你的域中使用它。
-
如果我理解你的评论正确域看起来像 > interface IterfaceClass { } anotherClass implements InterfaceClass { } domain { AnotherClass anotherClass }
code是吗?但是,在我们的案例中,它是以下场景域 { IterfaceClass interfaceClass } -
对垃圾邮件感到抱歉。但为了清楚起见:如果我正确理解您的评论,域将具有实现接口的域类,而不是具有接口作为属性的域。那正确吗?但是,就我们而言,是后者;域在其属性上具有接口。
-
你能发布你的界面和域名吗?
-
我为此在我们的模型上添加了设置。拥有 NonEnumDomain 类的原因有 interfaceClass,因为有几个 EnumClass 正在实现 InterfaceClass。谢谢
标签: grails interface grails-orm