我一直在与Spring合作,最近发现PersistantContext和EntityManagers等的存在。我一直在使用Spring Data + JPA,所以我从来没有真正接触过您的东西。在研究了Hibernate如何使用Session的方式以及JPA单独使用EntityManager的方式后,这有点让我感到震惊。所以我想知道Spring Data JPA如何对实体进行所有持久化和操纵。文档中所有内容就是:
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.entity-persistence
所以主要我的问题是Spring Data JPA是否真的使与数据库的交互这么容易?一些简单的问题:
如果即时通讯使用经典JPA存储库和Spring数据。这样的事情会完美地工作吗:
personRepoistory.save(someperson); //他的名字是弗雷德
Person temp = personRepository.findByName(“ Fred);
temp.setName(“ Freddy”);
personRepostiory.save(temp);
这本质上是对这个人的更新吗?
答案 0 :(得分:1)
减少样板代码: 用您自己的存储库实现的更好的方法将包括几行源代码。一行创建查询,第二行初始化查询,第三行传递参数,第四行收集结果。
灵活性: 允许使用Spring数据托管的存储库方法内联自定义存储库代码。这允许。
为常见问题提供通用实现: 例如,弹簧数据的分页是免费的。您将自己产生多少代码和错误?
与Spring MVC的进一步集成: 通过提供与Spring MVC生态系统的透明集成,可以保留更多样板代码。
强制您使用合理命名的界面: 在这里,我将指向“从存储库方法名称派生的动态查询”。这会影响您的界面命名和结构。
容易吗?显然,如果您使用的是hibernate,则它是在JPA和hibernate之上的另一种技术抽象,但是与此同时,您将节省大量的代码,并节省了许多错误。是的,这可能是一个很好的权衡。