【发布时间】:2015-11-19 08:47:36
【问题描述】:
Datanucleus 是否支持 mongodb 嵌入对象?
我有一个集合“组”,其中一个字段代表嵌入对象:
@PersistenceCapable(table = "group")
public class MyGroup
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY, column = "_id")
private String id;
private String name;
@Embedded
private Person person;
// getters/setters
...
}
@EmbeddedOnly
@PersistenceCapable
public class Person
{
private String _id;
private String firstName;
private String lastName;
// getters/setters
...
}
按 ID 检索记录(并与 Jackson 编组为 JSON)
MyGroup myGroup = persistenceManager.getObjectById(MyGroup.class, id)
配置:
@Bean
public PersistenceManager persistenceManager() throws IOException
{
Properties jdoProperties = getProperties();
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(jdoProperties);
return pmf.getPersistenceManager();
}
我得到的结果是:
{
"id": "523119baac8c950b674d9245",
"name": "GXVTXCCXB",
"person": {
"_id": null,
"firstName": null,
"lastName": null
}
}
嵌入的对象不是由它的值填充的。
【问题讨论】:
-
基于什么持久化代码?基于什么检索代码?日志是怎么说的?
-
@NeilStockton 请查看更新信息。
-
还有持久化代码,还有日志?
-
我没有持久化代码。我只是想获取对象。
-
所以你的意思是你已经在数据库中有对象,由其他一些机制持久化?所以也许你没有在你的 JDO 映射信息中正确映射嵌入的列
标签: mongodb orm datanucleus