java - 无法使用 graphql-spring 初始化代理
问题描述
我正在使用:graphql-spring-boot 和 graphql-java-tools 来实现。
电影.graphqls
type Movie {
id: Short
name: String
poster: String
releaseDate: String
runtime: String
storyline: String
rated: String
rating: String
inserted: String
}
type Query {
movies: [Movie]
movie(id: ID!): Movie
}
电影模型
@Entity
public class Movie {
private Short id;
private String name;
private String poster;
private Date releaseDate;
private Time runtime;
private String storyline;
private String rated;
private double rating;
private Timestamp inserted;
}
如您所见,我与其他模型没有关系。
最后是实现GraphQLQueryResolver的类
@Component
public class Query implements GraphQLQueryResolver {
@Autowired
private MovieRepository movieRepository;
public List<Movie> movies() {
return this.movieRepository.findAll();
}
public Movie movie(Short id) {
return this.movieRepository.getOne(id);
}
}
以下查询工作正常:
{
movies{
name
rating
}
}
但是这个查询:
{
movie(id: 1){
name
}
}
给我以下错误:
获取数据时出现异常 (/movie/rated):无法初始化代理 [com.example.demo.model.Movie#1] - 无会话
解决方案
尝试更改getOne
为findOne
public Movie movie(Short id) {
return this.movieRepository.findOne(id);
}
我认为 usinggetOne
要求调用在事务上下文中。因此出现错误 - 没有会话。
推荐阅读
- python - 在设定的时间后调用函数但继续使用 Python 运行程序代码
- firebase - ID令牌与uid的用法?
- perl - 当我在不同的行上尝试对同一个 .pl 文件执行 print 和 say 命令时,它不会运行并给出:错误 Uncaught exception from user code
- python - 从 p 标签中提取信息并使用 beautifulsoap 插入到 dict python
- python - 如何检查时间范围内的特殊时间段
- smartcontracts - 如何解决智能合约的错误?
- javascript - ReactJS 更新 UI 或调用不同类的方法
- python - 无法使用 s3 触发器将 s3 对象传输到 rds
- c - 协助解决这个问题,我似乎无法理解
- java - 空对象引用上的 java.lang.String com.google.firebase.auth.q.a0()'