我有一个使用EntityManager的ejb类:
@Remote
public interface TestEjbInt {
public List<Test> getAllTest();
}
@Stateful
public class TestEjb implements TestEjbInt{
private static final String PERSISTENCE_UNIT_NAME = "Test";
@PersistenceContext(unitName = "test")
private EntityManager managerTest;
//EntityManagerFactory emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
//EntityManager managerTest = emf.createEntityManager();
public List<Test> getAllTests() {
List<Test> tests = managerTest.createQuery(
"select * " +
"from Test")
.getResultList();
return tests;
}
}
尝试了不同的东西,在Application.java中添加:@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
/*@Bean
public PersistenceAnnotationBeanPostProcessor persistenceBeanPostProcessor() {
return new PersistenceAnnotationBeanPostProcessor();
}*/
@Bean
public LocalEntityManagerFactoryBean entityManagerFactory(){
LocalEntityManagerFactoryBean factoryBean = new LocalEntityManagerFactoryBean();
factoryBean.setPersistenceUnitName("test");
return factoryBean;
}
}
运行服务器时出现错误:
引起:org.springframework.beans.factory.BeanCreationException:在ema.Test中定义名称为'entityManagerFactory'的bean时出错:init方法的调用失败;嵌套异常是javax.persistence.PersistenceException:没有名为test的EntityManager的持久性提供程序
我提到我使用的是spring boot,我没有persistece.xml,我是通过application.properties配置的 .