当前位置: 首页 > 知识库问答 >
问题:

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

杜元明
2023-03-14

我正在使用graphql spring boot为spring boot项目中的graphql查询提供服务。现在,我正在将graphql方案类型定义与我的spring实体进行匹配。无论出于何种原因,我都会遇到以下错误:

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)

以下是我对家庭信息的graphql模式定义:

type HomestayInfo{
    homestayName: String
    homestayShortDescription: String
    homestayDescription: String
    address: Address
    rooms: [Room]
    houseImages: [HouseImage]
    pets: [Pet]
}

以及相应的kotlin实体:

@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

我看不出地图有什么问题。有什么想法吗?


共有1个答案

冯和硕
2023-03-14

将标量日期添加到schema.graphqls文件的顶部应该可以做到这一点!所以你的文件看起来像这样:

scalar Date

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

   query: Query

}

type HomestayInfo{
...
 类似资料:
  • 问题内容: 我很好奇Java的类和double的原始类型之间的性能差异是什么。因此,我创建了一个基准测试,发现类类型比原始类型慢3到7倍。(在本地计算机OSX上为3x,在ideone上为7x) 这是测试: http://ideone.com/fDizDu 那么为什么Double类型要慢得多呢?为什么还要实施它以允许数学运算符? 问题答案: 那么为什么Double类型要慢得多呢? 因为该值包装在需要

  • 为什么会出现以下情况 导致以下错误 无法将类型“m”与“IO”匹配。“m”是一个刚性类型变量,由类型签名绑定:foo::forall(m::*- 据我所知,既然IO()应该等于MonadIO,MonadIO约束不应该允许这样做吗?

  • 问题内容: 以下代码抛出编译时异常 类型不匹配:无法从整数转换为K 我了解的是应该处理任何扩展的价值。 (注意:这只是一个测试代码,用于提出我的问题,而没有提供与我的实际情况无关的详细信息。) 问题答案: 这里的问题是这样的事实:它是一个可扩展的类型,但它是该类型的一个 未知 子类,这就是为什么编译器会引发此错误,因为它只是该子类的一个特定子类,因此它无法与任何潜在的目标类型匹配,因此会引发此错误

  • 问题内容: 尝试将类类型的对象添加到 JArray时 遇到以下错误。 这是我正在使用的代码: 在运行程序时,我将其命名如下: 如何转换 _JArray(JArray) 内的 AmountModel(类) 以被系统识别为JSON对象? 非常感谢您的回答。 谢谢。 问题答案: 为了将任意非原始POCO添加到中,您必须使用以下重载之一显式序列化它: (另请注意,我已更正了循环中的结束条件。它是,导致出现

  • Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。

  • 存在多种方法来重新定义现有类型的行为以及提供新的类型。 重写类型编译 一个常见的需求是强制更改类型的“字符串”版本,即在create table语句或其他SQL函数(如cast)中呈现的版本。例如,应用程序可能希望强制呈现 BINARY 适用于除一个平台外的所有平台 BLOB 待渲染。在本例中,使用现有的泛型类型 LargeBinary ,是大多数用例的首选。但是为了更准确地控制类型,每个方言的编