首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java-graphql -无法将类型定义与java类型匹配

java-graphql -无法将类型定义与java类型匹配
EN

Stack Overflow用户
提问于 2018-08-04 03:55:54
回答 1查看 5.2K关注 0票数 1

我正在使用graphql-spring-boot来服务来自我的spring-boot项目的graphql查询。现在,我正在将graphql方案类型定义与我的spring entites进行匹配。无论出于什么原因,我都会收到以下错误:

代码语言:javascript
复制
Caused by: com.coxautodev.graphql.tools.SchemaClassScannerError: Unable to match type definition (ListType{type=TypeName{name='HomestayInfo'}}) with java type (class ninja.familyhomestay.domain.HomestayInfo): Java class is not a List or generic type information was lost: class ninja.familyhomestay.domain.HomestayInfo
    at com.coxautodev.graphql.tools.TypeClassMatcher.error(TypeClassMatcher.kt:19)
    at com.coxautodev.graphql.tools.TypeClassMatcher.match(TypeClassMatcher.kt:79)
    at com.coxautodev.graphql.tools.TypeClassMatcher.match(TypeClassMatcher.kt:25)

下面是我为HomestayInfo定义的graphql模式

代码语言:javascript
复制
type HomestayInfo{
    homestayName: String
    homestayShortDescription: String
    homestayDescription: String
    address: Address
    rooms: [Room]
    houseImages: [HouseImage]
    pets: [Pet]
}

和对应的kotlin实体:

代码语言:javascript
复制
@Entity
@Table(name = "homestay_info")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Document(indexName = "homestay_info")
data class HomestayInfo(
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    var id: Long? = null,

    @Column(name = "homestay_name")
    var homestayName: String? = null,

    @Column(name = "homestay_short_description")
    var homestayShortDescription: String? = null,

    @Column(name = "homestay_description")
    var homestayDescription: String? = null,

    @OneToOne
    @JoinColumn(name = "address_id")
    var address:Address?=null,

    @OneToMany(mappedBy = "homestayInfo", cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
    var rooms: MutableSet<Room> = HashSet(),

    @OneToMany(mappedBy = "homestayInfo", cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
    var houseImages: MutableSet<HouseImage> = HashSet(),

    @OneToMany(mappedBy = "homestayInfo", cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
    var pets: MutableSet<Pet> = HashSet()
) : Serializable

我看不出映射有什么问题。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 06:57:43

将标量日期添加到schema.graphqls文件的顶部应该可以做到这一点!因此,您的文件将如下所示:

代码语言:javascript
复制
scalar Date

schema {           // not sure if your file has this, but mine does

   query: Query

}

type HomestayInfo{
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51679341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档