5.10. 将实体 Bean 迁移到 JPA


对 EJB 实体 Bean 的支持在 Java EE 7 中是可选的,在 JBoss EAP 7 中不受支持。这意味着,在迁移到 JBoss EAP 7 时,容器管理的持久性(CMP)和 bean 管理的持久性(BMP)实体必须重写为使用 Java Persistence API(JPA)实体。

在之前的 JBoss EAP 版本中,实体 Bean 通过扩展 javax.ejb.EntityBean 类和实施所需的方法在应用源代码中创建。然后,它们在 ejb-jar.xml 文件中进行了配置。CMP 实体 Bean 使用 <entity> 元素指定,该元素包含 <persistence-type> 子元素,其值为 Container。使用 <entity> 元素指定 BMP 实体 bean,该元素包含值为 Bean<persistence-type> 子 元素。

在 JBoss EAP 7 中,您必须将代码中的任何 CMP 和 BMP 实体 bean 替换为 Java Persistence API(JPA)实体。JPA 实体使用 javax.persistence.* 类创建,并在 persistence.xml 文件中定义。

以下是 JPA 实体类的示例:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
// User is a keyword in some SQL dialects!
@Table(name = "MyUsers")
public class MyUser {
    @Id
    @GeneratedValue
    private Long id;

    @Column(unique = true)
    private String username;
    private String firstName;
    private String lastName;

    public Long getId() {
        return id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
Copy to Clipboard Toggle word wrap

以下是 persistence.xml 文件的示例

<persistence version="2.1"
      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">
  <persistence-unit name="my-unique-persistence-unit-name">
    <properties>
      // properties...
    </properties>
  </persistence-unit>
</persistence>
Copy to Clipboard Toggle word wrap

有关 JPA 实体的工作示例,请参见 JBoss EAP 7 附带的 bmt 、cmthibernate5 快速入门。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat