我正在尝试在JpaRepository实现中实现一个方法,该方法将部分克隆数据库记录。我希望避免通过实体管理器创建自定义存储库和构建查询。另外,我希望该方法直接在JpaRepository中实现 将通过REST端点公开。这是我的实现:
@RepositoryRestResource(collectionResourceRel = "inventory", path = "inventory")
public interface InventoryRepository extends JpaRepository<Inventory, Integer> {
@Transactional
@Modifying
@Query(nativeQuery = true, name = "Inventory.cloneItem", value = "INSERT INTO Inventory (name, param, param1) SELECT name, param, param1 from Inventory WHERE Inventory.id = :id")
@RestResource(exported = true, path = "cloneItem", rel = "cloneItem")
Integer cloneItem(@Param("id") Integer id);
}
我假设cloneItem()将返回创建的实体的ID,但它始终返回1。是否可以修改接口方法以使其返回创建的实体的ID或实体本身?
另一个问题是,即使使用@RestResource注释了该方法,它似乎也没有公开为REST端点