gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:08:43 27 4
gpt4 key购买 nike

这个问题与没有注释的 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;
}

当我保存 User 对象时,我想确保在 MongoDB Role 对象中存储为 DBRefs 而不是实际的 Role 对象图。

我的问题是 ─ 在我的 User 和 Role 类中不使用注释 ─ 我怎样才能做到这一点?

我搜索了用户的论坛,找不到方法。这就是为什么我在这里发布我的问题。

谢谢,
Kishore Veleti A.V.K.

最佳答案

不确定您是否曾经想过这一点,但是您可以使用 AspectJ 创建一个 ITD(类型间声明)来将注释编织到类中,而无需实际修改原始代码。

例如,要将您的 userRoles 转换为 DBRef,您只需要以下方面:

import org.springframework.data.mongodb.core.mapping.DBRef;
privileged aspect User_Mongo {
declare @field: * User.userRoles : @DBRef;
}

这只是将 @DBRef 注释添加到名为 userRoles 的用户中的任何字段。您可以查看 AspectJ 文档以获取有关字段模式和 ITD 的更多信息。

关于spring-data-mongodb - Spring Data MongoDB - 没有注释的模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29472103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com