在Web应用程序(jsp/servlets)中获取EntityManagerFactory的最佳方法是什么?这是一个好方法何时应该创建/打开EntityManagerFactory实例?或者从JNDI或其他东西获得它更好吗?
我很喜欢这个,而且 - 虽然我学到了很多 - 但开始绝望了.
我已经尝试过关于这个优秀问题的所有建议:
我曾经使用无处不在的HibernateUtil类在某一点上工作,但被告知要转到普通的JPA样式:
不幸的是,我无法让bean注入在spring-boot中正常工作.这是我的尝试:
Spring JPA(Hibernate)没有类型的限定bean:javax.persistence.EntityManagerFactory
经过这条路径的大量工作后,我最终得到了一个空实体管理器.我发现了这一点并开始认为它不起作用:
在Tomcat 6中使用JPA2:@PersitenceContext不起作用,EntityManager为null
在我看来,EntityManagerFactory绝对应该是spring-boot创建的任何上下文中的bean,但是......无论如何.我认为至少这会起作用:
申请发布:
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
控制器:
@Controller
public class GetController {
private static final String PERSISTENCE_UNIT_NAME = "cpJpaPu";
@RequestMapping(value = "/user", method = RequestMethod.GET)
public @ResponseBody User getUser(@RequestParam(value="id", required=true) int id) {
User user = null;
EntityManagerFactory emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = emf.createEntityManager();
UserDAO userDao = new UserDAO();
userDao.setEntityManager(em); …Run Code Online (Sandbox Code Playgroud)