我有一个项目,它使用Hibernate,并需要将实体数组传递到存储过程。
有关于存储过程的教程/文档,使用数组的过程,简单/自定义数据类型。我可以找到这些。但是我没有找到 * 一个 * 答案/博客文章/示例/无论如何将N个实体传递到存储过程。我能找到的是几十个未回答的问题,关闭jira tickets等。
有可能吗?我猜它的路径可能是:在oracle(或其他数据库)中创建自定义类型,创建接受该自定义类型的存储过程,然后以某种方式将整个实体Map到该自定义类型(从未这样做过),然后以某种方式从springdata调用该自定义类型的存储过程(从未这样做过)。应该/可以工作,但缺乏证据任何人这样做是可怕的。
有人能确认概述的路径将工作,或者更好的是,可以显示一些例子/文档显示完成?
注意事项:我不想讨论其他的策略,如何在没有存储过程的情况下达到“同样的结果”,或者类似的想法,回答:“不,这不可能用hibernate/jpa”这完全没问题,而且可以保存我(和其他人)思考这个问题的时间。
1条答案
按热度按时间w8rqjzmb1#
据我所知:
使用db驱动程序调用存储过程是微不足道的。通过springdata间接调用存储过程是讨厌的,但可行。从hibernate/jpa调用自定义类型的存储过程是不可能的,因为我能找到。
相反,我能够找到许多线程要求这一点,其中许多用户无法提供的例子,包括从hibernate论坛上的hibernate团队的答案。
我不确定这是否是有效的答案,但根据经验,我会说:不,这在hibernate中不受支持。这是可怕的,因为这可能是必要的/最佳的,经过多年的开发,你被锁定。这种无法/异常复杂的做琐碎的任务应该是使用不同框架的指示。
如果你在这个混乱中,我认为唯一可能的出路是:如果需要的话刷新,并使用spring org. springframework. jdbc. object. StoredProcedure调用stored proc。可悲的是,这可能是唯一的出路。