java - 有没有办法使用 JPA / Hibernate 和 mySQL 来获取计算列的值?
问题描述
我正在开发一个项目,因为我正在学习使用 JPA 的 Spring Boot,使用 Mustache 进行休眠作为模板。我设法用一个计算列创建了一个视图,该列从 issueDate 和 expiryDate 计算剩余天数。该视图工作正常,我能够显示除计算列之外的所有列。我需要帮助弄清楚如何做到这一点
我的实体类
package com.demgo.demgoerp.model;
import org.hibernate.annotations.Formula;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
@Entity
public class DocumentStorage
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "native")
@GenericGenerator(name = "native", strategy = "native")
// @Column(name = "id", updatable = false, nullable = false)
private Long documentID;
private String documentTitle;
private String documentLocation;
private String uploadDate;
private String issueDate;
private String expiryDate;
/* @Formula(value = "select CONCAT(documentLocation,documentTitle) from document_storage")
private String myColumn;*/
public DocumentStorage()
{
super();
}
public DocumentStorage(String documentTitle, String documentLocation, String uploadDate, String issueDate, String expiryDate)
{
super();
this.documentTitle = documentTitle;
this.documentLocation = documentLocation;
this.uploadDate = uploadDate;
this.issueDate = issueDate;
this.expiryDate = expiryDate;
}
public Long getDocumentID()
{
return documentID;
}
public void setDocumentID(Long documentID)
{
this.documentID = documentID;
}
public String getDocumentTitle()
{
return documentTitle;
}
public void setDocumentTitle(String documentTitle)
{
this.documentTitle = documentTitle;
}
public String getDocumentLocation()
{
return documentLocation;
}
public void setDocumentLocation(String documentLocation)
{
this.documentLocation = documentLocation;
}
public String getUploadDate()
{
return uploadDate;
}
public void setUploadDate(String uploadDate)
{
this.uploadDate = uploadDate;
}
public String getIssueDate()
{
return issueDate;
}
public void setIssueDate(String issueDate)
{
this.issueDate = issueDate;
}
public String getExpiryDate()
{
return expiryDate;
}
public void setExpiryDate(String expiryDate)
{
this.expiryDate = expiryDate;
}
}
我的回购
package com.demgo.demgoerp.dao;
import com.demgo.demgoerp.model.DocumentStorage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface DocumentRepo extends JpaRepository<DocumentStorage, Long>
{
@Query(value = "select * from ShowAllDocuments", nativeQuery = true)
List<DocumentStorage> findAllDocuments();
@Query(nativeQuery = true, value = "select * from document_storage")
public List<DocumentStorage> getAllDocs();
}
我的数据库视图
create view ShowAllDocuments
as
SELECT
documentid,
document_location,
document_title,
upload_date,
issue_date,
expiry_date,
datediff(expiry_date,issue_date) as days_remaining
FROM document_storage;
现在我只想能够在我的小胡子视图上列出该 days_remaining 列和其余列。
解决方案
推荐阅读
- json - JSON 值无法转换为 System.Boolean。路径:$
- snmp - 使用 SharpSnmp 时,当 V1 中的响应具有尾随数据字节时,SNMP GET snmpexception
- swift - SQLite 处理来自数据库 SWIFT 的实数
- github - GitHub Actions 未读取机密信息
- xcode - 命令 PhaseScriptExecution 失败,退出代码为非零 Xcode
- reactjs - 我如何处理 fetch api react 中的错误?
- google-cloud-platform - OAuth 同意屏幕验证 - 符合域验证要求
- javascript - Pixi.js - 如何在移动设备上修复纹理模糊?
- javascript - nodejs中如何修改其他模块的代码
- flutter - 参数类型“void Function(DioError)”不能分配给参数类型“void Function(DioError, ErrorInterceptorHandler)?”