繁体   English   中英

在Spring Boot中使用CrudRepository检索DiscriminatorColumn

[英]Using CrudRepository to retrieve a DiscriminatorColumn in Spring Boot

我目前正在使用Spring Boot进行项目。

我正在使用的表之一正在使用DiscriminatorColumn,如下所示:

@Entity
@Table(name = "document_summary", uniqueConstraints = @UniqueConstraint(columnNames={"document_name", "document_type"}))
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "document_type", discriminatorType = DiscriminatorType.STRING)
public class DocumentSummary {
     ...
     //no document type field
     ...
}

如您所见,即使表上的列称为“ document_type”,也未明确将其创建为单独的字段。

通常,我只需要创建一个这样的存储库即可从数据库检索文档摘要:

public interface DocumentSummaryRepository extends CrudRepository<DocumentSummary, Long> {
    DocumentSummary findByDocumentType(String documentType);
}

在这种情况下,是否有一种方法基于列document_type来检索“文档摘要”数据?

谢谢。

我不认为这是这样做的方法。

看一下本教程: https : //www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-two-crud/

通过两种方式,您可以看到在这种情况下如何以及在哪一列调用。

此外,在有关错误的执行方式的部分中,您还将看到:

  1. 创建一个扩展Repository接口的基本接口,并将通用方法添加到该接口。
  2. 创建扩展我们基本接口的实际存储库接口。

尝试在存储库界面中更改findBy方法:

public interface DocumentSummaryRepository extends CrudRepository<DocumentSummary, Long> {
    DocumentSummary findByDocument__type(String documentType);
}

在这里使用双下划线,因为Spring将其视为保留字符: doc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM