我正在使用dbRef注释将文档保存在mongodb中时遇到一些问题。保存文件时,两个文件都保存在正确的文件中。但是对于具有其他Domain对象的DBRef的Document也进行了设置,但是具有不同的集合(我可以说是默认集合)。
**My Code as follows**
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@XmlRootElement(name = "employees")
@Document(collection = "employees")
public class employee implements CollectionName {
public static final String COLLECTION_NAME = "employees";
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String uuid;
private String employeeName;
@Transient
@JsonIgnore
private String businessIdenitity;
@DBRef
@CascadeSave
private Department department;
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getBusinessIdenitity() {
return businessIdenitity;
}
public void setBusinessIdenitity(String businessIdenitity) {
this.businessIdenitity = businessIdenitity;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
@Override
@JsonIgnore
@Transient
public String getCollectionName() {
return businessIdenitity == null|| businessIdenitity.isEmpty() ? COLLECTION_NAME : businessIdenitity + "_"+ COLLECTION_NAME;
}
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@XmlRootElement(name = "department")
@Document(collection = "department")
public class Department implements CollectionName {
public static final String COLLECTION_NAME = "department";
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String uuid;
private String departName;
@Transient
@JsonIgnore
private String businessIdenitity;
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getBusinessIdenitity() {
return businessIdenitity;
}
public void setBusinessIdenitity(String businessIdenitity) {
this.businessIdenitity = businessIdenitity;
}
@Override
@JsonIgnore
@Transient
public String getCollectionName() {
return businessIdenitity == null|| businessIdenitity.isEmpty() ? COLLECTION_NAME : businessIdenitity + "_"+ COLLECTION_NAME;
}
}
我已经完成了事件监听器,并且保存该部门是级联保存。效果不错,但存储在不同的集合中。
当我的API说要为员工保存公司ID时
{ “ _id”:“ 523-451”, “部门”:{
_id" : "523-453",
etc
} }
我希望将文档保存在businessId_document集合中。
我可以保存在1234_employee集合和1234_department集合中吗。
但是在1234_employee文档中,DBRef指向的部门不是1234_department。
任何人都可以帮我解决这个问题。