命名本机查询并将列映射到表中不存在的实体字段

时间:2012-07-12 20:02:15

标签: jpa

我有一个命名的本机查询,我正在尝试将其映射到命名本机查询的返回结果。我想在表中不存在的实体中添加一个字段,但它将存在于查询的返回结果中。我想这与存储过程相同......

如何在JPA中映射存储过程的返回结果?...

你怎么称呼存储过程?

这是一个关于我想做什么的示例查询...

select d.list_id as LIST_ID, 0 as Parent_ID, d.description  from EPCD13.distribution_list d

结果将映射到此实体...

public class DistributionList implements Serializable {
    @Id
    @Column(name="LIST_ID")
    private long listId;

    private String description;

    private String owner;

    private String flag;

    @Column(name="PARENT_ID", nullable = true)
    private long parentID;
}

父ID不在我的数据库的任何表中。我还需要再次使用此实体进行其他调用,这与此调用无关,并且不需要此parent_id? JPA标准中有什么可以帮助我的吗?

1 个答案:

答案 0 :(得分:2)

如果进一步操作不需要数据库的结果,仅用于预览,您可以考虑使用database view or result classes constructor expression


如果需要从数据库检索的实体进行进一步操作,您可以使用multiple select expressiontransient fields

  1. 将@Column注释替换为使用@IDnsient注释而不是parentID。
  2. 从数据库中检索多个列后,迭代结果并手动设置parentID。