我有这两个文件,用户:
@Document(collection = "User")
public class User {
// fields
}
Run Code Online (Sandbox Code Playgroud)
和联系方式:
@Document(collection = "Contact")
public class Contact extends User{
// fields
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个文档,它引用了“用户oder联系人”:
@Document(collection = "DocumentFile")
public class DocumentFile {
@DBRef
private User user;
}
Run Code Online (Sandbox Code Playgroud)
因此,我能够在DocumentFile#user中添加用户或联系人,但是如果我将Contact设置为DocumentFile#user,则丢失了引用,因为在MongoDB中,DocumentFile#user存储为“ _class”:“ ... Contact”。有解决方案吗?
有没有简单的方法来查找查询中的孤立引用?我有一组具有父参考的元素.在删除了一些父母后,我想搜索指向它们的元素,即那些有挂引用的元素.
我尝试了各种语法,但都没有.
我在DBRef上遇到了一些麻烦,看看这个案例:
db.fruit.save ({"_id" : "1" , "name" : "apple"});
db.fruit.save ({"_id" : "2" , "name" : "grape"});
db.fruit.save ({"_id" : "3" , "name" : "orange"});
db.fruit.save ({"_id" : "4" , "name" : "pineapple"});
db.basket.save ({"_id" : "1", "items" : [
{"$ref" : "fruit", "$id" : "1", "quantity" : 5},
{"$ref" : "fruit", "$id" : "3", "quantity" : 10}
]})
Run Code Online (Sandbox Code Playgroud)
现在,让我们找到"篮子"系列:
> db.basket.find ()
{ "_id" : "1", "items" : [
{
"$ref" : "fruit",
"$id" : "1"
},
{
"$ref" …Run Code Online (Sandbox Code Playgroud) 由于Spring Roo指导在架构上执行DBRE,我们使用以下命令生成实体及其相关文件.
我们可以选择参数--activerecord或--repository; 选择后者将忽略第一个.
我的问题是两者之间的区别是什么?
roo> 数据库逆向工程师 --schema DbSchemaName --package~.domain --activeRecord --repository --service --testAutomatically --enableViews --includeTables --excludeTables --includeNonPortableAttributes --disableVersionFields --disableGeneratedIdentifiers
使用--activeRecord选项创建"Active Record"实体(如果未指定,则为默认值).
使用--repository选项为每个实体创建Spring Data JPA存储库.如果指定为true,则忽略--activeRecord选项.
我想使用DBrefwithgo-mongo-driver但我找不到任何关于它的例子。我怎样才能做到这一点?我之前使用过 Spring Data Mongodb,您可以在类中指定 Dbref,例如:
@DBRef private EmailAddress emailAddress;
有没有人可以举出一个很好的例子?提前致谢
dbref ×5
mongodb ×4
activerecord ×1
database ×1
find ×1
go ×1
jpa ×1
mongo-go ×1
reference ×1
repository ×1
spring-data ×1
spring-roo ×1