【发布时间】:2018-01-30 23:08:49
【问题描述】:
我有一个包含实体的 jar,其中的代码我不能修改或做任何事情,只能使用它们,我必须使用那个 jar。
我正在尝试使用这些实体将它们持久保存在 mongodb 中,并且我正在使用 Spring,所以我选择了 SpringData 而不是 Hibernate(也是因为我阅读了一些导致我选择 SpringData 而不是 Hibernate NoSQL impl 的内容)。无论如何,我无法让它工作,因为我还没有找到任何方法来设置集合的属性,比如索引、唯一性、复合索引等。现在我可以存储它以及除了由于无法正确配置我的实体,我失去了很多 mongo 功能。
我在寻找不需要修改现有代码的 xml 配置或其他形式的映射。
到目前为止,我能想到的唯一“解决方案”是
通过插入一些虚拟数据创建集合,将其删除,然后使用 WriteConverter 和 ReadConverter 进行映射。
在我的代码中复制完全相同的实体并将它们添加到相应的注释中,然后将它们转换为 jar 中的那些,但这是我最后的手段。
有什么想法或替代解决方案吗?
谢谢。
【问题讨论】:
-
我什至会概括这个问题,如果有人不想用第三方注释(如 Sprint Data 中的注释)污染域对象怎么办。对于类似的 mixins 问题,Jackson 有一个解决方案。
-
是的,我正在寻找那个(不是杰克逊部分),但什么也找不到。但你是对的,我应该对这个问题更笼统。
标签: java spring-data spring-data-mongodb