0
私のプロジェクトではwildflyとgraphql-javaを使用しています。私はそこにtheyのようなGraphQLエンドポイントを設定しました。それはダミーデータと完全に機能しました。しかし私は私のデータベースに接続するBeanの中にある私のリポジトリを挿入することができません。注入された変数は常にnullです。GraphQL Java:注入されたBeanを使ったBuildschema
誰かが私を助け、私が間違っていることを教えてもらえますか?
GraphQLEndpoint
@WebServlet(urlPatterns = "/graphql")
public class GraphQLEndpoint extends SimpleGraphQLServlet {
@EJB()
private static CountRepositoryInterface countRepository;
public GraphQLEndpoint() {
super(buildSchema());
}
private static GraphQLSchema buildSchema() {
LinkRepository linkRepository = new LinkRepository(); // Dummy Data from ArrayList
TraceRepository traceRepository = new TraceRepository(); // Dummy Data from ArrayList
return SchemaParser.newParser()
.file("schema.graphqls")
.resolvers(new Query(linkRepository, traceRepository, countRepository))
.build()
.makeExecutableSchema();
}
}
CountRepositoryInterface
@Remote
public interface CountRepositoryInterface {
void createCounter(Counter counter);
Counter getCounterByUser(String userName);
void updateCounter(String userName);
void deleteAllCounter();
List<Counter> GetAllFromCounter();
}
CountRepository
@Stateless
public class CountRepository implements CountRepositoryInterface {
@PersistenceContext(unitName = "count")
private EntityManager entityManager;
public void createCounter(Counter counter) {
entityManager.persist(counter);
}
public List<Counter> GetAllFromCounter() {
Query query = entityManager.createQuery("SELECT c FROM Counter c");
return query.getResultList();
}