我目前正在开发一个带有套接字服务器的小型 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) 我目前正在研究Angular(5)和GraphQL的一些基本内容,我遇到了调用watchQuery方法的一些问题.一旦我调用该方法,我的组件崩溃并返回以下错误:
ERROR TypeError: Object(...) is not a function
我在网上搜索了一个解决方案,但我找不到合适的解决方案.我的环境包含以下库:
我有一个带有一些导入和链接的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)