小编Mar*_*cel的帖子

无法将 java.lang.String 字段设置为 java.lang.String

我目前正在开发一个带有套接字服务器的小型 MMO 应用程序。我使用的数据库是 PostgreSQL,并且使用 Hibernate ORM。在请求单个用户拥有的所有头像时,我偶然发现了一个例外。

我参与了 3 个课程,它们是:

  • 游戏服务器客户端
  • 数据库
  • 数据库.查询

当用户(客户端应用程序)通过套接字向服务器发送请求时,将调用一个方法,该方法应返回所有头像的 JsonString。

然而,使用 HQL 查询from UserOwnsAvatar where user = :username并将结果放入 UserOwnsAvatar 对象的 ArrayList 中,它会返回一个Can not set java.lang.String field nl.marcusink.mmo.server.database.table.User.username to java.lang.String

完整的 stackTrace 是:

org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.String nl.marcusink.mmo.server.database.table.User.username] by reflection for persistent property [nl.marcusink.mmo.server.database.table.User#username] : Mjollnir94
    at org.hibernate.property.access.spi.GetterFieldImpl.get(GetterFieldImpl.java:43)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:223)
    at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4594)
    at org.hibernate.type.EntityType.toLoggableString(EntityType.java:505)
    at org.hibernate.internal.util.EntityPrinter.toString(EntityPrinter.java:87)
    at org.hibernate.engine.spi.QueryParameters.traceParameters(QueryParameters.java:281)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:194)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:87)
    at nl.marcusink.mmo.server.database.Database$Queries.avatarsRequest(Database.java:134)
    at nl.marcusink.mmo.server.connection.GameServerClient.run(GameServerClient.java:91)
    at java.lang.Thread.run(Thread.java:745)
Caused by: …
Run Code Online (Sandbox Code Playgroud)

java sockets hibernate server

5
推荐指数
1
解决办法
3万
查看次数

apollo.watchQuery导致'ERROR TypeError:Object(...)不是函数'

我目前正在研究Angular(5)和GraphQL的一些基本内容,我遇到了调用watchQuery方法的一些问题.一旦我调用该方法,我的组件崩溃并返回以下错误:

ERROR TypeError: Object(...) is not a function

我在网上搜索了一个解决方案,但我找不到合适的解决方案.我的环境包含以下库:

  • apollo-angular:^ 1.1.0
  • apollo-angular-link-http:^ 1.1.0
  • apollo-cache-inmemory:^ 1.2.2
  • apollo-client:^ 2.3.2
  • graphql:^ 0.13.2
  • graphql-tag:^ 2.9.2
  • rxjs:^ 5.5.6

我有一个带有一些导入和链接的sharedModule:

export class SharedModule {
  constructor(apollo: Apollo, httpLink: HttpLink) {
    apollo.create({
      link: httpLink.create({uri: 'baseUri/graphql'}),
      cache: new InMemoryCache()
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

我在列表组件中有以下代码:

getMovies() {
  this.movies = this.apollo.watchQuery<Query>({    // <= where my error occurs
    query: gql`
      query {
        movies {
          id
          title
          genres
        }
      }
    `
  })
    .valueChanges
    .pipe(map((result) => result.data.movies));
}
Run Code Online (Sandbox Code Playgroud)

完整错误包含以下代码行:

ERROR TypeError: Object(...) is …
Run Code Online (Sandbox Code Playgroud)

rxjs apollo graphql angular

5
推荐指数
1
解决办法
1758
查看次数

标签 统计

angular ×1

apollo ×1

graphql ×1

hibernate ×1

java ×1

rxjs ×1

server ×1

sockets ×1