【发布时间】:2019-07-08 03:07:46
【问题描述】:
我想使用 spring boot java 在 couchbase 中保存一个员工对象。我正在使用反应式沙发底座驱动程序。我的要求是使用带有硬编码字符串“-EMPLOYEETYPE”后缀的employeeId 保存员工对象。
示例: 从 Java 应用程序到 couchbase 的对象:
{ "employeeId" : "12345", "lname" :"ltest", "fname" : "ftest"}
在保存到沙发底座时,应该像
那样生成密钥"12345-EMPLOYEETYPE"
下面的代码不起作用,请指导我如何实现它。 注意:我使用的是 lombok,所以没有 getter 和 setter。
@Document
public final class Employee {
@Id @GeneratedValue(strategy = GenerationStrategy.USE_ATTRIBUTES,delimiter="-EMPLOYEETYPE")
private String id;
@IdAttribute
private String employeeId;
}
【问题讨论】:
-
"下面的代码可以正常工作吗?" - onSO,提出问题的发帖人应该说他们的代码是否有效和/或什么不起作用。你试过你的代码吗?
-
@ErwinBolwidt,为此道歉。它不工作。我现在已经编辑了我的帖子。
-
你能告诉我,id 是不是一个自增数?还是一个 couchDB 序列?
-
@user_D_A__,这里我不是试图从自动增量或序列中生成 id。我想基于employeeId创建带有一些后缀的密钥。这里来自输入本身的employeeId 将是唯一的。我需要附加后缀的原因是,couchbase 将所有类型的(员工、地址等)文档放入单个存储桶中。在某些情况下,employeeId 和 addressId 可能会发生冲突。为了避免这种情况,我想添加一个与对象类型相关的后缀。
标签: java spring-boot couchbase spring-webflux