JPA审计实体直接查询

时间:2015-07-08 07:32:15

标签: java jpa

我想在JPA环境中查询审计实体。

起初我做AuditQuery并且效果很好,但现在我需要更多提前查询,我可以使用AuditQuery

现在我需要像

这样的东西
 this.em.createQuery("FROM ENTITY_AUD").getResultList();

但我收到错误:

 QuerySyntaxException: ENTITY_AUD is not mapped [ENTITY_AUD]

我知道这是因为我没有所有属性的实体,但我不想拥有实体,因为它是审计实体。

周围有办法吗?对我来说,获得对象列表是可以的。

2 个答案:

答案 0 :(得分:1)

您始终可以在JPA中创建本机SQL查询。在代码中将createQuery替换为createNativeQuery

List<Object[]> list = 
    this.em.createNativeQuery("SELECT * FROM ENTITY_AUD").getResultList();

答案 1 :(得分:0)

在Audit类中添加NamedQuery

@Entity
@Table(name = "ENTITY_AUD")
@NamedQueries({
@NamedQuery(name = "Audit.findAll", query = "SELECT a FROM Audit a")})
public class Audit implements Serializable {
         ...
}

然后使用命名查询

List<Audit> auditList = entityManager.createNamedQuery("Audit.findAll").getResultList();

阅读:Implementing a JPA Named Query