jav*_*ore 6 spring-data-mongodb
此问题与没有注释的Spring Data MongoDB模型类有关.
我有一种情况需要在RDBMS存储或NoSQL存储中存储我的域类.比方说,我的域类是User,Feature,PaymentRequest,Order,OrderLine,OrderHeader等.
由于各种原因,我无法在我的域类中使用任何注释.
应用程序团队将指定他们想要存储的持久性存储.他们可能配置为将其存储在MongoDB或MySQL或Oracle等中.
我的要求是当我在MongoDB中存储时说使用spring-data-mongodb我想利用DBRefs来获取我的域对象中的关联对象.
如何在不使用模型类中的注释的情况下使用spring-data-mongodb实现.
class Role
{
String id;
String roleName;
}
class User {
String id;
String firstName;
String lastName;
List<Role> userRoles;
}
Run Code Online (Sandbox Code Playgroud)
当我保存User对象时,我想确保在MongoDB中将Role对象存储为DBRefs而不是实际的Role对象图.
我的问题是──在我的用户和角色类中没有使用注释─我怎样才能实现这一目标?
我搜索了用户的论坛,找不到办法.这就是为什么我在这里发布我的问题.
谢谢,Kishore Veleti AVK
不确定您是否已经弄清楚这一点,但您可以使用 AspectJ 创建 ITD(类型间声明),将注释编织到类中,而无需实际修改原始代码。
例如,要将 userRoles 转换为 DBRef,您只需要以下方面:
import org.springframework.data.mongodb.core.mapping.DBRef;
privileged aspect User_Mongo {
declare @field: * User.userRoles : @DBRef;
}
Run Code Online (Sandbox Code Playgroud)
这只是将 @DBRef 注释添加到 User 中名为 userRoles 的任何字段。您可以查看 AspectJ 文档以获取有关字段模式和 ITD 的更多信息。
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |