Java 无法实例化RegionFactory[org.hibernate.cache.ehcache.EhCacheRegionFactory]

Java 无法实例化RegionFactory[org.hibernate.cache.ehcache.EhCacheRegionFactory],java,hibernate,grails,Java,Hibernate,Grails,我的域类如下。主键Id是serviceProviderId和SportId两个字段的组合(分别存在于另一个表serviceProvider和Sports中)。当我启动grails应用程序时,我得到以下异常 org.hibernate.MappingException:实体映射中的重复列:com.zonalde.fields详细列:服务提供者id(应使用insert=“false”update=“false”映射) 我在这里可能遗漏了什么。我已经准备好了表,并使用 请帮忙 class Fields

我的域类如下。主键Id是serviceProviderId和SportId两个字段的组合(分别存在于另一个表serviceProvider和Sports中)。当我启动grails应用程序时,我得到以下异常

org.hibernate.MappingException:实体映射中的重复列:com.zonalde.fields详细列:服务提供者id(应使用insert=“false”update=“false”映射)

我在这里可能遗漏了什么。我已经准备好了表,并使用

请帮忙

class FieldsDetails implements Serializable {

    Integer serviceProviderId
    Integer sportsId
    String isPaynPlay
    Boolean isActive
    Sports sports
    ServiceProvider serviceProvider

    int hashCode() {
        def builder = new HashCodeBuilder()
        builder.append serviceProviderId
        builder.append sportsId
        builder.toHashCode()
    }

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

    static belongsTo = [ServiceProvider, Sports]

    static mapping = {
        id composite: ["serviceProviderId", "sportsId"]
        version false

    }

    static constraints = {

        isPaynPlay nullable: true, maxSize: 1
        isActive nullable: true

    }
}

您需要将映射更新为:

static mapping = {
        id composite: ["serviceProviderId", "sportsId"]
        version false
        serviceProvider column: '`service_provider_id`', insertable: false, updateable: false
        sports column: '`sports_id`', insertable: false, updateable: false
    }

您可以参考grails文档以了解更多详细信息

谢谢@Rahul,但是在您的更改之后,我发现以下错误将启动grailsapp@SandeepPoonia我已经更新了问题描述中的代码和错误。现在它以不同的错误失败了,很难从一艘班轮上确定确切的问题。您能否添加更多描述,即异常logs@VinodJayachandran您遇到的新错误是什么?