Inheritance GORM,继承模型,递归链接

Inheritance GORM,继承模型,递归链接,inheritance,grails,groovy,gorm,Inheritance,Grails,Groovy,Gorm,假设我们有书 class Book { String title String type="Book" String author Book parentBook // <----<<< //... } 当我这样做时,当我试图为ReferenceBook设置parentBook时,会得到一个java.lang.reflect.InvocationTargetException 我知道我在这里遗漏了什么…使用鉴别器功能: class B

假设我们有书

class Book {

   String title
   String type="Book"
   String author
   Book parentBook // <----<<<
   //...
}
当我这样做时,当我试图为ReferenceBook设置parentBook时,会得到一个java.lang.reflect.InvocationTargetException


我知道我在这里遗漏了什么…

使用鉴别器功能:

  class Book {
   String title
   String author
   Book parentBook // <----<<<
   //...
   static mapping = {
     tablePerHierarchy false
     discriminator column:[name:"discriminator", length:200, value:'Book']
   }
  }

class ReferenceBook extends Book {
  //...
  static mapping = {
    discriminator column:[value:'RefBook']
  }
  void setParentBook(Book b) {
    parentBook = ('RefBook' == b?.properties['class']) ? b : null
  }
教材{
字符串标题
字符串作者

Book parentBook/使用鉴别器功能:

  class Book {
   String title
   String author
   Book parentBook // <----<<<
   //...
   static mapping = {
     tablePerHierarchy false
     discriminator column:[name:"discriminator", length:200, value:'Book']
   }
  }

class ReferenceBook extends Book {
  //...
  static mapping = {
    discriminator column:[value:'RefBook']
  }
  void setParentBook(Book b) {
    parentBook = ('RefBook' == b?.properties['class']) ? b : null
  }
教材{
字符串标题
字符串作者
书家长书//