无法从具有 grails 复合键的域 class 中获取其余 API

Can't fetch the rest API from domain class having composite key in grails

我有这个 grails 域 class,它连接到包含复合主键的 oracle 数据库,如下所示。
每当我尝试渲染列表时,它总是会抛出此错误。你能帮帮我吗?我这两天一直在研究这个问题,但我没有解决它。?


@Resource(uri="/gender",formats = ['json','xml'])
class CGender implements Serializable {

    String budYear
    String genderCode
    String genderNdesc
    String genderEdesc
    String disableFlag
    String createdBy
    Date createdDate


    int hashCode() {
        def builder = new HashCodeBuilder()
        builder.append budYear
        builder.append genderCode
        builder.toHashCode()
    }

    boolean equals(other) {
        if (other == null) return false
        def builder = new EqualsBuilder()
        builder.append budYear, other.budYear
        builder.append genderCode, other.genderCode
        builder.isEquals()
    }

    static hasMany = [CProjects: CProject]
    static belongsTo = [grails.tsa.test.CYear]

    static mapping = {
        id composite: ["budYear", "genderCode"]
        table "C_GENDER"
        version false
    }

    static constraints = {
        budYear maxSize: 7
        genderCode maxSize: 2
        genderNdesc maxSize: 1000
        genderEdesc maxSize: 100
        disableFlag maxSize: 1
        createdBy maxSize: 30
    }
}```



**The error which occured is below.**

```Caused by: java.lang.NullPointerException: null
    at org.grails.web.converters.marshaller.json.DomainClassMarshaller.marshalObject(DomainClassMarshaller.java:141)
    at org.grails.web.converters.marshaller.json.DomainClassMarshaller.marshalObject(DomainClassMarshaller.java:59)
    at grails.converters.JSON.value(JSON.java:184)
    at grails.converters.JSON.convertAnother(JSON.java:144)
    at org.grails.web.converters.marshaller.json.CollectionMarshaller.marshalObject(CollectionMarshaller.java:41)
    at org.grails.web.converters.marshaller.json.CollectionMarshaller.marshalObject(CollectionMarshaller.java:30)
    at grails.converters.JSON.value(JSON.java:184)
    at grails.converters.JSON.render(JSON.java:119)
    at org.grails.plugins.web.rest.render.json.DefaultJsonRenderer.renderJson(DefaultJsonRenderer.groovy:116)
    at org.grails.plugins.web.rest.render.json.DefaultJsonRenderer.renderJson(DefaultJsonRenderer.groovy:110)
    at org.grails.plugins.web.rest.render.json.DefaultJsonRenderer.render(DefaultJsonRenderer.groovy:91)
    at grails.artefact.controller.RestResponder$Trait$Helper.internalRespond(RestResponder.groovy:192)
    at grails.artefact.controller.RestResponder$Trait$Helper.respond(RestResponder.groovy:62)
    at grails.rest.RestfulController.index(RestfulController.groovy:62)
    at grails.gorm.transactions.GrailsTransactionTemplate.doInTransaction(GrailsTransactionTemplate.groovy:94)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
    at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91)
    ... 13 common frames omitted

我在 Grails 4.0.1 上遇到了同样的问题。这在 Grails 3.3.11 上运行良好。一个月前针对 Grails 提出了一个问题:https://github.com/grails/grails-core/issues/11450