Spring Data MongoDB - 没有注释的模型类

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

Dav*_*idA 0

不确定您是否已经弄清楚这一点,但您可以使用 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 的更多信息。