我应该使用 Java ORM 还是应该使用自己的 sql 查询?或者两者兼而有之?

Posted

技术标签:

【中文标题】我应该使用 Java ORM 还是应该使用自己的 sql 查询?或者两者兼而有之?【英文标题】:Should I use a Java ORM or should I use my own sql queries? Or maybe a mix of both? 【发布时间】:2020-05-15 02:49:16 【问题描述】:

这是我的数据库目前的样子,我已将它与 Java Spring 引导应用程序正确连接。我想利用 ORM 的一些好处,但也想知道如果需要的话我是否也可以编写自己的 sql 查询。

虽然我是使用 ORM 的新手,并且可以就是否可以混合使用 ORM 和原始 sql 查询提出一些建议。

ER-Diagram

【问题讨论】:

【参考方案1】:

创建一个扩展 JpaRepository 或 CrudRepository 的接口。

public interface <YourClassRepository> extends JpaRepository<YourClass, YourClassId> 

@Query("Your Query")
method();


这将允许您执行 CRUD 操作。

如果您想将 SQL 用于其他目的,则可以使用 @Query

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query

【讨论】:

【参考方案2】:

这个问题是基于意见的。

但是,如果您使用 ORM 层,则可以为基本的创建、读取更新和删除操作节省时间和代码(参见 @iamsan 中的示例)。 ORM 层在很多情况下都很有意义,但您的问题没有简单的答案。这取决于你在做什么以及你想要达到什么。 如果你想实现 ORM 进行学习,那就去做吧。

我现在使用它有一段时间了,它使持久化变得容易得多。但是,您可能必须先处理一些配置。

这些只是我的两分钱,您可能会从其他用户那里得到不同的答案。

【讨论】:

以上是关于我应该使用 Java ORM 还是应该使用自己的 sql 查询?或者两者兼而有之?的主要内容,如果未能解决你的问题,请参考以下文章

如果 ORM(JPA、Hibernate 等)是邪恶的,Java-er 应该使用一些东西

ORM 分配数据以查看

我应该使用啥标准来评估 ORM?

我应该在 Doctrine 2 中使用 YAML/XML 还是注解映射?

对于带有 Derby db 的 Spring MVC 项目,我应该使用啥 ORM?

我啥时候应该考虑使用 ORM 框架?