【问题标题】:Create SQL view with panache使用 panache 创建 SQL 视图
【发布时间】:2023-02-10 22:57:08
【问题描述】:

我在用着

<dependency>
     <groupId>io.quarkus</groupId>
     <artifactId>quarkus-hibernate-reactive-panache</artifactId>
</dependency>

而我想像生成表一样生成SQL视图,具体如下:

@Entity
public class Invoice extends PanacheEntityBase {
...
}

我已经尝试过这种方式但没有真正成功,我在 quarkus 的文档中找不到任何关于此的内容:

@Entity
@Subselect("SELECT i.id as invoiceId, i.appointmentIds FROM invoice i")
public class BilledAppointments extends PanacheEntityBase {
    @Column
    public Long invoiceId;

    @Column
    public String appointmentsIds;
}

【问题讨论】:

    标签: quarkus quarkus-panache


    【解决方案1】:

    我发现视图不是由框架管理的,而是由数据库管理的。所以实际上不可能将视图映射到“经典”实体,因为 Panache 会将其解释为表并创建一个。此外,如果您在数据库中手动创建一个引用您的实体之一的视图,那么如果您采用“删除并创建”策略,它可能会被删除。

    一种解决方案是:

    @Entity
    public class MyTable extends PanacheEntityBase {}
    
    @Entity
    @Subselect("SELECT * FROM MyTable")
    @Synchronize("MyTable")
    public class MyView extends PanacheEntityBase {}
    

    【讨论】:

      猜你喜欢
      • 2022-06-22
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      相关资源
      最近更新 更多