存储库的一个实体类,该实体类通过来自不同表的多个联接来调用存储过程

时间:2019-04-25 19:54:18

标签: java database spring jpa

我有一个存储库,该存储库在数据库中调用存储过程。该存储过程连接到三个不同的表,并返回一个列表,其中每行包含5个变量。这些变量来自3个不同的表。 我如何为此拥有一个实体类?

我的实体类

@Table(name = "invoicing_batch")
@Entity(name = "invoicing_batch")
@NamedStoredProcedureQuery(name = "invoicebatchMon",
            procedureName = "sp_invoicebatch_Mon",
            resultClasses = { Billing.class })

public class Billing implements Serializable {
    @Id
    @Column(name = "ibi_batch")
    private Long ibiBatch;
    @Column(name = "ac_name")
    private String acName;
    ....

存储库类:

@Repository
public interface BillingRepository extends JpaRepository<Billing, Long> {
    @Procedure(name = "Billing.invoicebatchMon")
    List<Billing> getBillingStatusMon();

当应用程序运行且调用此方法时,出现异常:

o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 207, SQLState: S0001
o.h.engine.jdbc.spi.SqlExceptionHelper   : Invalid column name 'ac_name'.

这是因为ac_name不在表invoicing_batch中。 (我的实体类中的多个列来自不同的表)

是否可以为存储过程提供单个实体类,以减少实体类和代码的数量?

0 个答案:

没有答案