Orm 维护/自动生成IBatis SQL映射?

Orm 维护/自动生成IBatis SQL映射?,orm,oracle10g,ibatis,ibatis.net,Orm,Oracle10g,Ibatis,Ibatis.net,我刚开始一份新工作,从地狱继承了这个项目。 Hell={2年超过计划,过于复杂,同时使用oracle和sql server} Oracle服务器中有100多个存储过程,每个存储过程都有一个IBatis SQL映射。有些共享相同的结果图。DBA喜欢每天更改存储过程而不告诉我 问题: 是否有任何工具可以检查解决方案中的所有IBatis SQL映射。 理想情况下,它将验证: 存在存储过程 存储过程参数与参数映射中的参数匹配 存储过程结果[列名]与结果映射中的匹配 存储过程结果不缺少结果映射上指定的任何

我刚开始一份新工作,从地狱继承了这个项目。 Hell={2年超过计划,过于复杂,同时使用oracle和sql server}

Oracle服务器中有100多个存储过程,每个存储过程都有一个IBatis SQL映射。有些共享相同的结果图。DBA喜欢每天更改存储过程而不告诉我

问题: 是否有任何工具可以检查解决方案中的所有IBatis SQL映射。 理想情况下,它将验证:

  • 存在存储过程
  • 存储过程参数与参数映射中的参数匹配
  • 存储过程结果[列名]与结果映射中的匹配
  • 存储过程结果不缺少结果映射上指定的任何内容
  • 结果映射中的对象属性标题与结果映射中列出的标题匹配
  • 背景:我通常只使用SQL Server和亚音速2.2作为ORM。这样,我只需执行一个命令,我的DAL就会神奇地自动生成。这样,如果我需要的列丢失,我就会得到一个很好的易于理解的编译时错误,而不是一个令人困惑的运行时错误。这里有类似的工具吗


    谢谢你的帮助

    有一个名为的工具,但我不认为它是用于您所描述的。我的方法是创建执行iBatis代码的测试。这样,当测试失败时,你就知道有问题了。您还可以使用Oracle测试过程的存在性等。这些检查可能是附加测试。

    我已经有一段时间没有接触Oracle了,但是如果我没有记错的话,存储过程的输出(例如,来自select)不会在任何地方声明。因此,它需要通过工具进行反向工程。LinqToSql试图为SQL Server实现这一点,但取得了部分成功,但这通常是一个困难且不可靠的过程。因此,这似乎使得清单上的第3-5项几乎无法通过代码生成/工具实现。我还没有深入研究亚音速2.2对存储过程的支持,但我认为它也会与第3-5项发生冲突。相反,作为存储过程的一部分声明的单个输出字段可以相当直接地处理

    第1项和第2项更容易实现,但我不熟悉iBatis的可用工具,抱歉。但我不认为iBatis或Oracle与您的问题有多大关系

    您的最佳选择可能是说服DBA更加有帮助和/或积极地运行DIFF来检测和手动处理存储过程更改