我正在使用: graphql-spring-boot和graphql工具来实现.
movie.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
}
}给出以下错误:
获取数据时的异常(/育龄/额定):无法初始化代理com.example.demo.model.Movie#1 -没有会话
发布于 2018-09-05 10:06:10
尝试将getOne更改为findOne
public Movie movie(Short id) {
return this.movieRepository.findOne(id);
}我认为使用getOne需要调用在事务上下文中。因此出现了错误-没有会话。
发布于 2018-08-31 13:34:17
您需要在拥塞文件application.properties中添加策略的命名。
hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategyhttps://stackoverflow.com/questions/52076589
复制相似问题