我遇到了一个问题,即 child 没有对其 parent 的引用。假设我已经建立了双向关系,可以从 parent 那里获得 child ,并从 child 那里获得 parent 。但是我 child 的 parent 总是空着回来。
我有一个 parent
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Company {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent(mappedBy = "company")
private List<Employee> employees = new ArrayList<Employee>();
}
带着一个 child
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Employee {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private Company company;
@Persistent
private String username;
}
我坚持的对象,
Company newCompany = new Company();
Employee newEmployee = new Employee();
newEmployee.setUsername("ryan");
newCompany.getEmployees().add(newEmployee);
pm.makePersistent(newCompany);
我正在这样访问对象,
Query query = pm.newQuery(Employee.class,"username == s");
query.declareParameters("String s");
List<Employee> employees = (List<Employee>)query.execute(username);
pm.close();
if (employees.size() > 0)
{
Employee employee = employeeList.get(0);
...
}
然后,我在调试时看到“公司”为空,而其余的员工字段都在填充。对我想念的东西有什么想法吗?
最佳答案
根据对象状态,获取父对象取决于检查对象的位置。如果此时您的PM已关闭,则它将不会获取父字段。关闭PM之前触摸父字段(并且将keepValues设置为true,或者在PM关闭时分离)将导致设置父字段。
关于java - 在JDO中获得 child 的 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24592574/