我想Map视图并使用JPA进行查询。
假设我的观点如下:
@Entity
@Immutable
@Table(name = "active_task_view")
@Getter @Setter
@NoArgsConstructor
public class ActiveTaskViewEntity {
private long id;
private String taskName;
private String workflowName;
private String userName;
private LocalDate createdAt;
private LocalDate updatedAt;
}
我设置了applications.properties允许生成实体:
spring.jpa.hibernate.ddl-auto= create
spring.jpa.defer-datasource-initialization=true
spring.sql.init.data-locations=classpath:import.sql
spring.jpa.generate-ddl = true
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.SQL=TRACE
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
我的问题如下:视图被创建为表。我把实体放在一个特定的包里,而表放在另一个包里。我不知道如何定义应该生成哪些表,哪些实体应该只用作Map。
实际上,视图应该存在于类路径的import.sql文件中(尚未实现)。
2条答案
按热度按时间plicqrtu1#
有几个“选项”(我自己更喜欢使用liquibase):
I.用
@Subselect
而不是@Table
标记实体,如下所示:II.实现
org.hibernate.tool.schema.spi.SchemaFilterProvider
,我认为应该看起来像:HBN部件:
Boot 部件:
a1o7rhls2#
实际上,我只是简单地设置了实体扫描的基本包...
我的视图被Map到一个不同的包中,比如fr.mycompany.app.entity.view它没有在我的数据库中生成我的视图,这似乎是最简单的方法,视图在init的sql文件中处理。