首先,我将展示这个问题的背景......
我试图对存储库进行快速且无冗余的实现。有问题的对象如下所示:
class SomeObject {
@Id
private Long id;
private List<SomeData>;
private List<SomeOtherData>;
....
}
SomeData 和 SomeOtherData 是实体,它们通常由 JPA 映射。后来我使 SomeObject 实例不可变,这可以进一步优化。SomeObject 变得可互换,我不想在 db 中重复。为了找到可能的重复项,我需要比较这些列表。
出现了主要问题:如何检查 SomeData 中 SomeData 集合的相等性 SomeObject (顺序没有意义)与 SomeData 的一些任意集合(作为参数提供)?
我已经尝试通过结合 JPA SIZEOF 和几十个 MEMBER BY 来确保两个集合相等的解决方法。它有效,但性能绝对可怕。