我想创建一个rest API,它将存储过程名称作为输入,并将procedure 参数作为rest API 参数。当我创建一个实体类时,我只获得一个表访问权限,例如我有一个客户表,但我的存储过程访问不同的表和视图,它给了我一个错误:“无效的列名 ID”这是因为执行的过程没有使用我们在实体类中提到的列和表。
我想使用 spring mvc 和 jpa 用 spring rest 创建这个 API。
我还想验证系统 ID 是否存在于表中,例如 tablename:customer { sysid: ram, procedure_name:sp_byid }。
现在,它的工作原理是使用实体类中使用的 table(customer) 检查 systemid 输入,我什至无法获得单个数据,即 procedure_name,因为我们无法在 @ 中传递“select colname from table name where id = x”查询注释。如果一条记录存在,我们要检查哪个存储过程与 id 映射。sp_byid 是从不同表“user”获取数据的存储过程,但由于实体类没有与存储过程使用的表相同的表,我们无法做到这一点,并给出“无效的列名 id”错误。这是一个存储过程的用例示例,只有一个记录,我有很多要添加的记录。
我们如何处理这个问题,有没有什么替代 jpa 可以在没有实体的情况下工作并只传递自定义查询?
示例休息 URL : localhost:8080/get/systemid/procedurename
我发现进行自定义查询的答案是通过创建自定义存储库以通过 Entitymanager 获取数据。但是自定义查询返回一个可以转换为对象列表的查询类型。你不能像实体一样获得键值对。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句