我试图创建一个web服务,让通过Hibernate从数据库中获取了一定的成效。
@Path("/book")
public class BookService {
@Inject
private dbController db;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getBookTitle() {
return "H2G2";
}
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
public Response getUsers(){
List<UserEntity> users = db.getUsers();
return Response.ok(users,MediaType.APPLICATION_JSON).build();
}
}
DB变量每当我打电话的http://本地主机/书/用户总是空。
该dbController是:
public class dbController {
@Inject
private HibernateUtil util;
public List<UserEntity> getUsers(){
List<UserEntity> result = null;
try{
result = (List<UserEntity>) this.util.createQuery("select e from UserEntity e");
}catch (Exception e){
System.out.println(e.getMessage());
}
return result;
}
}
和HibernateUtil类是:
public class HibernateUtil {
private static final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("NewPersistenceUnit");
private EntityManager entityManager = null;
private void createEntityManager(){
if (this.entityManager==null){
this.entityManager = entityManagerFactory.createEntityManager(); // here is your persistence unit name
}
}
private void closeConnection(){
this.entityManager.close();
this.entityManager = null;
}
public List createQuery(String query) throws Exception{
this.createEntityManager();
List result;
try{
result = this.entityManager.createQuery(query).getResultList();
}catch (Exception e){
throw new Exception(e.getMessage());
}
return result;
}
}
我使用的IntelliJ和我在db.getUsers添加一个破发点(),并通过添加新dbController设置变量DB()。 然而,的IntelliJ给我的错误“类未加载:controller.dbController”。
Hibernate的工作肯定......所以这个问题是不存在的。 这是我第一次尝试使用依赖注入,但我不知道我做错了。
谢谢