当前位置: 首页 > 面试题库 >

Spring Hibernate-CrudRepository和SessionFactory之间的区别

弘思聪
2023-03-14
问题内容

我正在考虑使用Hibernate保留我的模型。我似乎找到两种方法来做到这一点。

第一个使用SessionFactory,例如:

public Collection loadProductsByCategory(String category) {
        return this.sessionFactory.getCurrentSession()
                .createQuery("from test.Product product where product.category=?")
                .setParameter(0, category)
                .list();
    }

另一个使用带注释的子类/接口扩展CrudRepository

@Transactional
public interface UserDao extends CrudRepository<User, Long> {
  public User findByEmail(String email);
}

另外,@Transactional有时我看不到@Repository注释。有什么区别?

我没有找到“何时/应该使用前一种或后一种方法”的答案,因此我可以得到解释吗?


问题答案:

只是您可以在Spring docs网站上找到这些注释的描述。

很快,要回答您的问题,它们之间的区别是它们用于不同的目的。

  • @Transactional用于划分事务中涉及的代码。它放在类和方法上。

  • @Repository 用于定义支持事务的Spring bean,也可以在DI中使用。

它们可以在同一类上使用。



 类似资料:
  • 问题内容: 我读到它是延迟加载的,并立即获取整个实体。我检查调试日志,我甚至能监视我的SQL服务器上看到的语句被执行的东西,我发现,无论和生成和执行相同的查询。但是,当我使用时,这些值最初为null(当然,除了id)。 因此,谁能告诉我,如果两种方法都在数据库上执行相同的查询,那为什么我要在另一种方法上使用呢?我基本上是在寻找一种获取实体而不获取其所有子代/属性的方法。 编辑1: 实体代码 道代码

  • 本文向大家介绍Java中的CrudRepository和JPARepository之间的区别,包括了Java中的CrudRepository和JPARepository之间的区别的使用技巧和注意事项,需要的朋友参考一下 CrudRepository和JPA仓库都是spring数据仓库库的接口。Spring数据存储库通过提供一些预定义的查找器来访问各种持久层的数据层,从而减少了样板代码。 JPA存储

  • 问题内容: Spring Data JPA 和接口之间有什么区别? 当我在网络上看到示例时,我发现它们在这里可以互换使用。它们之间有什么区别?你为什么要在另一个上使用? 问题答案: 延伸,延伸。 它们的主要功能是: 主要提供CRUD功能。 提供进行分页和排序记录的方法。 提供了一些与JPA相关的方法,例如刷新持久性上下文和批量删除记录。 由于继承如上所述, 将所有的功能和。所以,如果你不需要的仓库

  • 问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子:

  • 问题内容: 因此,我有一段简单的代码可以打印出整数1-10: 然后,如果仅在第3行上更改一个运算符,它将打印出无限数量的1整数(我知道为什么会这样做)。为什么在运行第二个程序时没有出现语法错误?如果赋值运算符后面跟着一个加法运算符,它不会调用语法错误吗? 问题答案: 与相同, 只是意味着。