Spring Data JPA中CrudRepository和JpaRepository接口的区别是什么?当我在网上看到这些例子时,我发现它们是可以互换使用的。它们之间的区别是什么?为什么要用其中一种

EntityManager.merge()可以插入新对象并更新现有对象。为什么要使用persist()(它只能创建新对象)?

我想将我的项目打包在一个可执行的JAR中进行分发。如何使Maven项目将所有依赖JAR打包到输出JAR中?