【发布时间】:2021-07-09 14:25:43
【问题描述】:
我的 Spring 应用程序遇到了一个小问题。
我正在使用这样的存储库:
public interface TripRepository extends CrudRepository<TripEntity, Long>, Serializable {
@Query("SELECT vt FROM TripEntity vt WHERE vt.opdDate "
+ " = TO_DATE(:operatingDay, 'DD.MM.YYYY') AND vt.lineId IN :lineIds")
public List<TripEntity> findByDateAndLine(@Param("operatingDay") String operatingDay,
@Param("lineIds") Collection<Long> lineIds);
我的问题是to_date 函数。在生产中,我正在使用 Oracle,一切都很好。但是为了开发,我想使用 mysql 数据库。
是否有可能编写独立于数据库的查询?或者可能编写两个查询,但使用它们取决于驱动程序。
如果有人能帮我解决这个问题,我会很高兴。
提前致谢
【问题讨论】:
-
我想你回答了你自己的问题;您为所支持的每种方言编写单独的查询。您也许可以为每种方言编写完全独立的查询,或类似宏的替换来替换某些语法。具体如何处理取决于您的应用程序和编程技能,但这远远超出了 stackoverflow 问题的范围。
-
数据库中性代码是一个神话。每个 rdbms 产品都有自己独特的 SQL 实现。每个 rdbms 产品都有自己独特的过程语言,位于其独特的 SQL 实现之上。每个 rdbms 产品都有自己独特的内部架构和功能,使一个“最佳设计实践”成为另一个“最差设计实践”。
-
不能使用free XE edition 进行开发吗?
标签: mysql oracle spring-boot spring-data-jpa mysql-connector