【发布时间】:2021-08-06 22:35:11
【问题描述】:
这与我的另一个问题here 有关。我只是在寻找一种方法(注释、系统配置等)让 Hibernate 跳过或忽略模型中的列,这些列与当前的 ResultSet 不对齐。澄清一下——我不是指的是瞬态属性,因为这些属性都是持久的,只是每个查询都不涉及每个属性。
这里是情况的快速总结:
-
我无法控制表或查询,一切都是通过存储过程完成的(业务决策,不是我的)。
-
由于每个存储过程之间的差异很大,我的想法是将“分支模型”(彼此之间仅相差 1-2 列的模型)合并为几个更大的模型,然后我可以使用这些模型插入或检索数据,同时使用 DTO 进行映射。
-
目前唯一的问题是,如果 Hibernate 在当前 ResultSet 中找不到匹配的列,Hibernate 将在模型实体的水合期间抛出 SQLException(很有趣,它似乎并不关心关于另一种方式 - 即,如果实体中几乎没有列,只要一个与当前 ResultSet 匹配)。
任何帮助都将不胜感激,因为我已经尝试解决这个问题一段时间了,我正要回去让每个存储过程都有自己的实体。
【问题讨论】:
-
设计问题..您要整合的存储过程是否相关,或者最终可能会将整个数据库存储过程抽象为一个业务模型?
-
@osamayaccoub 存储过程是相关的,模型本身大多相同,模型之间的差异主要是另一个表上的连接显示为附加列。
标签: java hibernate spring-data-jpa