我正在开发一个应用程序,并开始创建我的 JPA 实体(annotation + persistence.xml)。然后在我的 persistence.xml 文件中,我为 MySql 数据库创建了一个连接(连接很好)。
问题是我只是不知道如何在不创建“主类”的情况下保留我的实体。
我是否必须为要创建的每个实体运行我的主类?
我正在开发一个应用程序,并开始创建我的 JPA 实体(annotation + persistence.xml)。然后在我的 persistence.xml 文件中,我为 MySql 数据库创建了一个连接(连接很好)。
问题是我只是不知道如何在不创建“主类”的情况下保留我的实体。
我是否必须为要创建的每个实体运行我的主类?
要持久化一个实体,你需要一个 entityManager 的实例。由于您有一个 Java EE 容器,因此您可以使用某个 bean@PersistenceContext
中的注释获取 entityManager 的实例
我说的一些豆子是什么意思?它是一个由 Java EE 容器管理的 bean。因此,例如,您必须像这样定义一个 bean:
@Stateless
public class MyController{
@PersistenceContext
private EntityManager em;
public void persistIt(Object anEntity){
em.persist(anEntity);
}
}
注释@Stateless
向容器指示它必须管理此类并在需要时负责提供 entityManager 的实例。
因此,要准确回答您的问题:只要您找到访问 entityManager 实例的方法,就不必让另一个类来持久化实体。
但是:
此外,控制器是您可以正确处理交易的地方。