使用 JPA 实体创建会话 Bean

您可以使用“创建 EJB 3.1 会话 Bean”向导在 EJB 项目中创建会话 Bean 和 JPA 实体。

过程

  1. 请遵循用于创建 EJB 项目的步骤。在配置字段旁边,单击修改

    修改配置

  2. 在“项目构面”页面上,选择 Java Persistence,然后单击确定
    添加 JPA 构面
  3. 遵循这些步骤以创建 EJB 项目;在“JPA 构面”页面上,
    1. 平台字段中,选择 RAD JPA 平台
    2. 连接字段中,选择连接,或单击添加连接以创建连接。遵循这些步骤来创建您选择的数据库连接。
    3. 如果不想使用缺省模式,请选择覆盖连接中的缺省模式,然后在模式字段中选择替代模式,然后单击完成
  4. 在 EJB 项目中创建会话 Bean
    1. 在 Java™ EE 透视图中,右键单击项目,然后,选择新建 > 会话 Bean。这时,将显示“创建 EJB 3.1 会话 Bean”向导。
    2. 源文件夹字段中,为新 Bean 选择源文件夹。
    3. Java 包字段中,输入新 Bean 的包名。
    4. Bean 名称字段中,输入要指定给企业 Bean 的名称。按照惯例,Bean 名称以大写字母开头。
      注: 您可以使用 Unicode 字符来作为 Bean 名称,但是与企业 Bean 相关联的企业 Bean 包和类不支持 Unicode 字符。
    5. 选择“远程”以添加远程接口并选择“本地”以添加本地接口,然后单击完成
  5. 在 EJB 项目中创建 JPA 实体
    1. 右键单击 EJB 项目,然后选择 JPA > 生成实体...
    2. 在“数据库连接”页面上,确保连接和模式正确,然后单击下一步
    3. 在“从表生成实体”页面中的“源文件夹”字段中,输入源文件夹的名称或浏览至包含您实体的 Java 源代码文件的文件夹的路径。
    4. 在 Java 包字段中,输入或浏览至实体的 Java 包。
    5. 如果要将实体类与 persistence.xml 文件同步,请选择同步 persistence.xml 中的类
    6. 字段中,选择要从其创建实体的表,然后单击完成。 这时,Java 编辑器将打开并显示您的 JPA 实体类。
  6. 在 JPA 实体类中创建查询:在 Java 编辑器中打开 JPA 实体类,并且您可以从数据库创建用于检索数据的查询。例如,以下是实体类中的两个简单查询:
    @Entity
    @NamedQueries({
    	@NamedQuery(name = "findBySalaryLessThan", query = "SELECT e FROM Employee e WHERE e.salary < :salary"),
    	@NamedQuery(name = "findBySalaryGreaterThan", query = "SELECT e FROM Employee e WHERE e.salary > :salary")
    })
  7. 在会话 Bean 中使用 JPA 实体:在无状态会话 Bean 中,您可以使用 EntityManager 的注入来运行您在 JPA 实体中创建的查询。在 Java 编辑器中打开会话 Bean 类,并创建用于连接至 JPA 实体的 EntityManager。以下是用于调用在上一步中创建的查询的示例:
    @Stateless
    public class HumanResourcesBean implements HumanResources {
    
    	@PersistenceContext
    	private EntityManager emanager;
    
    	public HumanResourcesBean() {
    	}
    
    	public List<Employee> findBySalaryLessThan(double salary) {
    		Query query = emanager.createNamedQuery("findBySalaryLessThan");
    		query.setParameter("salary", BigDecimal.valueOf(salary));
    
    @SuppressWarnings("unchecked")
    		List<Employee> result = query.getResultList();
    		return result;
    	}
    
    	public List<Employee> findBySalaryGreaterThan(double salary) {
    		Query query = emanager.createNamedQuery("findBySalaryGreaterThan");
    		query.setParameter("salary", BigDecimal.valueOf(salary));
    
    @SuppressWarnings("unchecked")
    		List<Employee> result = query.getResultList();
    		return result;
    	}
    }
指示主题类型的图标 任务主题
信息中心的条款和条件 | 反馈

时间戳记图标 最近一次更新时间: 2014 年 4 月 17 日

文件名:tsessbeanjpawiz.html