我正试图使用JPA在我的微服务中编写存储库调用,现在的问题是,我试图使存储库调用的表名称是SQL中的保留关键字,即。"案例">
目前,为了克服这个问题,我们正在我们的存储库中编写一个像这样的本地查询
@Repository
public interface CaseRepository extends JpaRepository<Case, Long> {
@Query(value = "Select * from cft."case" where id = :idCase", nativeQuery = true)
Case findCaseById(Long idCase);
}
因为这不是一个好方法,所以我试图删除nativeQuery并试图做这样的事情
@Repository
public interface CaseRepository extends JpaRepository<Case, Long> {
@Query("select c from Case c where c.id = :idCase")
Cases getCaseById(Long idCase);
}
但是这段代码给出了一个错误,因为Case是一个保留关键字。为此,我试图在stackoverflow中寻找类似的问题,但我看到的建议是,表的名称需要更改,但由于在我们的情况下,这个表在很多地方被使用,所以不能冒更改名称的风险。
任何关于我们如何克服这个问题的提示都是非常感谢的。
您必须在表的名称中使用双引号,以便它按照字面意思使用名称。在您的实体类中,您应该使用如下内容:
@Entity
@Table(name = ""case"")
public class Case {
}