0

使用连接和 Eclipselink JPA2.0 实体编写 JPA 本机查询的正确方法是什么?

有人可以告诉我使用 Eclipselink JPA 本机查询或 JPQL 执行以下 SQL 查询吗?

SQL查询为:Select e.EmployeeName,e.EmpId, d.DeptId from Employee e, Department d join e.DeptId on d.DeptId where e.DeptId=d.DeptId

JPA 实体 bean 代码片段

@Entity
@Table(name = "employee")

@JoinColumn(name = "DeptId", referencedColumnName = "DeptId")
@ManyToOne
    private Department DeptId;

@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Employee.findAll", query = "SELECT e FROM Employee e")})

    //more auto generated named queries using NetBeans

JPA 实体类“Employee”实现 java.io.Serializable 并且默认构造函数包含所有必需字段。

将 jpa 实体与 My-SQL 表映射的正确方法是什么

多对一关系:Employee.DeptId --> Department.DeptId Employee.RoleId --> JobRoles.RoleId

Employee.RoleId --> Skills.SkillId 两个表成功后我想加入三个表。

我正在阅读 Ecipselink 用户指南,但无法得到它。有人会为我提供代码片段或指导我更正资源。

我浏览了 EclipseLink JPA 在线指南:

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/ 查询 http://wiki.eclipse.org/EclipseLink/UserGuide/JPA

我正在使用本机查询,因为 Eclipse 链接 JPA 支持它并且 JPQL 不提供完整的可移植性。我编写并开发了一个示例 jsf-jpa 应用程序,其中 jpa 实体映射到单个表。使用 Netbeans IDE,生成和执行 JPQL 查询不需要太多时间。

我想使用本机查询和/或存储过程执行 JPA 实体。如果我可以在 SQL 查询和存储过程中使用我现有的技能,只要 JPA 实现不会带来太多问题,那将会更有效率。

更新:可以根据JSR 317 的第 3.8.15 节 SQL 查询使用本机 SQL 查询:[JavaTM Persistence API,2.0 版][1] http://download.oracle.com/otndocs/jcp/persistence-2.0-fr -其他-JSpec/

SQL 查询工具旨在为必须使用正在使用的目标数据库的本机 SQL 的情况(和/或无法使用 Java Persistence 查询语言)的情况提供支持。本机 SQL 查询预计不能跨数据库移植

因此,我认为使用本机查询没有错,因为我不需要可移植性。

4

1 回答 1

0

本机查询成功执行,JSR 317 规范的第 3.8.15 节有助于理解语法,除了命中和试验我的代码。

于 2013-04-19T06:20:54.233 回答