В Grails 4.0.3 и Grails 3.3.11, если у вас есть иерархия наследования с абстрактным суперклассом, например,
package mypackage
abstract class A {
String name
// ...
// properties
// ...
}
package mypackage
class B extends A {
String b
// ...
// properties
// ...
}
package mypackage
class C extends A {
String c
// ...
// properties
// ...
}
И вы заполняете конкретные классы в Bootstrap.groovy
, например,
package mypackage
class BootStrap {
def init = { servletContext ->
A.withTransaction { status ->
def listOfB = []
(1..25).each { i ->
listOfB << new B(name:"b${i}",b:"${i}st")
}
B.saveAll( listOfB )
def listOfC = []
(1..25).each { i ->
listOfC << new C(name:"c${i}",c:"${i}nd")
}
C.saveAll( listOfC )
}
}
def destroy = {
}
}
Если вы используете скаффолдинг, страница index для A
показывает пустой список вместо разбитого на страницы списка из 50 объектов (25 объектов B и другие 25 C объектов).
Кроме того, он показывает кнопку new , которая генерирует java.lang.InstantiationException
при нажатии, потому что пытается создать экземпляр абстрактного класса.
Как я могу показать популяции абстрактные классы в index.gsp?