我应该使用 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 应该使用一些东西
我应该在 Doctrine 2 中使用 YAML/XML 还是注解映射?