我想使用一个存储库从差异表实体中进行选择。 我使用Spring Data JPA并拥有自己的查询方法:
@Query(value = "SELECT * FROM ?=1 WHERE ref_id=?2", nativeQuery = true)
BaseEntity findByRefId(String tableName, Long refId);
第一个问题是可以通过某种方式传递表名吗?因为现在我正在编码表名。
接下来,我有两个子类EntityOne和EntityTwo。它们的字段(列)与BaseEntity相同,但必须在不同的表中。
@MappedSuperclass // or @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) and @Entity
BaseEntity
|
@Entity
EntityOne
|
@Entity
EntityTwo
我尝试对BaseEntity使用@MappedSuperclass注释。但这是行不通的,我有一个例外,必须将BaseEntity注释为@Entity。 另外,我尝试将BaseEntity注释为@Entity和@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS),但是我遇到了SQLException:找不到列'clazz_'。我什至没有该专栏。
答案 0 :(得分:0)
从spring-docs https://docs.spring.io/spring-data/jpa/docs/1.5.0.RC1/reference/html/jpa.repositories.html
看例2.12
您可以使用SpEL这样做:
kwargs = {'group_id' : 123}
scheduler.add_job(...., kwargs=kwargs)