- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 PersistenceContext
注释来注入(inject)实体管理器,但出现以下异常。
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'Foo' available
然后我做了一些研究,在每个示例中,配置类中都有一个 bean,其信息与我在 persistence.xml 中的信息相同。
我们是否应该能够仅使用持久性单元名称注入(inject)实体管理器?
这是我的代码
@Component
public class UnitOfWork {
@PersistenceContext(unitName="Foo")
private EntityManager entityManager;
}
@Configuration
@ComponentScan("com.foo.package")
public class Config {
}
META-INF 文件夹中的 Persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="Foo">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL57Dialect"/>
<property name="hibernate.archive.autodetection" value="class" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/foo?useSSL=false" />
<property name="hibernate.connection.username" value="foo"/>
<property name="hibernate.connection.password" value="foo" />
</properties>
</persistence-unit>
</persistence>
Pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org-springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org-springframework.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.0.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
最佳答案
您仍然需要定义一个 LocalContainerEntityManagerFactory
以使 EntityManagerFactory
在应用程序上下文中可用。如果没有一个不起作用,LocalContainerEntityManagerFactory
将使用 persistence.xml
(如果存在)来配置自己。
关于java - 从 persistence.xml 注入(inject) PersistenceContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476285/
我当前在刷新 PersistenceContext 中的数据时遇到问题。我有一个 CMT EJB3 bean,它调用 BMT EJB3 bean。在 BMT bean 中,我对对象执行一些处理逻辑。我
据我了解,交易完成后不会立即刷新。它们位于内存中的缓存中,只有在 EntityManager 确定这样做具有成本效益时才会写入数据库。我相信在这种情况下使用了 L1 缓存,但如果我错了请纠正我。 我的
我创建了一个 PersonDao 对象,它是一个应该使用注入(inject)实体管理器的可注入(inject) bean。问题是 @PersistenceContext() 没有注入(inject)我
根据许多示例,可以像这样将 EntityManager 注入(inject) @Stateless 或 @Singleton EJB: @Stateless // or @Singleton publ
我已经使用多个实体管理器工厂和多个事务管理器定义了多个持久性单元。我知道我可以通过向持久性上下文提供单元名称来访问相应的实体管理器,如下所示。 @PersistenceContext(unitName
我尝试创建 BaseDao 并向其注入(inject) EntityManager。在 Spring 我做了这个: public abstract class BaseJpaDao implement
我正在使用 JPA 2.1,我有这样的东西 public class EntityManagerProducer { @Produces @PersistenceContext(uni
我将 JPA 用于我的应用程序的数据访问层。 我为每个表(实体)都有一个 DAO 类,在每个表中我都通过以下方式获得实体管理器@PersistenceContext 注释。但最近我读到,这意味着我的每
我想这个问题很简单。我不知道该怎么做,我唯一的猜测是: @PersistenceContext("Bibliothouris" + RunParallelized.thread) protected
我正在尝试使用 Delta Spike (@RunWith(CdiTestRunner.class)) 在单元测试中让 CDI(使用 Open Web Beans)工作。依赖注入(inject)工作正
这是我的java类: public class Finder { @PersistenceContext(unitName = "abc") EntityManager em; publi
EntityManager @Inject[ed] 在多个类中是否是线程安全的? @PersistenceContext(unitName="blah") private EntityManager
在几个项目中我已经成功使用 @PersistenceUnit(unitName = "MiddlewareJPA") EntityManagerFactory emf; ... EntityManag
我有两个不同的 EntityManager,我想在其相关 EntityManagerFactory 的遗留类(无 bean) 中使用 @PersistenceContext(name = "entit
基于这个例子: @Service public class Purchase { @PersistenceContext private EntityManager em; @Autowi
我正在使用 Wildfly 创建一个简单的 CRUD 应用程序来管理图书(查找和保留) 但是 EntityManager 总是返回 null。 我尝试了 Persistence.createEntit
我们正在使用 Spring 3.1、JPA(通过 Hibernate)和 Quartz。通常,我们通过 Service bean 上的 @PersistenceContext 注释以及 SpringM
我正在使用 Wildfly 10、Jersey,并使用 @Inject 注入(inject)依赖项。我有 DAO 和 Service 接口(interface),其实现在 CustomBinder 中
我想知道当我调用 session= session.getCurrentSession() 时,hibernate 何时完成上下文 session 问题是我的 dao 中有 2 个方法调用 getCu
尝试通过注释 PersistenceContext 访问 EntityManager 时出现 NullPointerException import javax.ejb.Stateless; impo
我是一名优秀的程序员,十分优秀!