我已经使用 Spring Roo 有一段时间了。我真的很喜欢它如何消除平凡的编程并让您真正专注于应用程序的逻辑。然而,我最近发现自己在与运行时作斗争,因为它不断更新我的 JPA 注释并删除属性名称。
我正在调用一个存储过程,在其中计算派生值(从用户当前位置到场地的距离)并尝试将其存储在 JPA 记录对象中。我已经能够让代码成功工作,如这个问题SqlResultSetMapping columns as and entities中所述
我设法通过禁用 Spring Roo shell 然后在重新编译我的项目之前手动更新注释来做到这一点。
但是,当我在运行 Roo shell 的 spring 源工具套件中编写此逻辑时,Roo 运行时总是从这里更新注释:
@SqlResultSetMapping(name = "findVenuesByDistanceMapping", 实体 = { @javax.persistence.EntityResult(entityClass=model.VenueRecord.class) }, 列 = { @javax.persistence.ColumnResult(name="distance") })
对此:
@SqlResultSetMapping(name = "findVenuesByDistanceMapping", 实体 = { @javax.persistence.EntityResult(model.VenueRecord.class) }, 列 = { @javax.persistence.ColumnResult("distance")})
您会注意到它已删除注释属性标识符。然后,当我尝试编译该类时,我得到了一个异常。除非我完全离开 Spring Roo,否则似乎没有办法解决这个问题。这将令人失望,因为我已经使用了几个月,并且最近才发现一个我似乎无法解决的问题。
有没有人对我如何解决这个问题有任何建议?也许甚至修改 spring roo 代码以识别正确的注释格式?