【发布时间】:2011-04-18 01:39:52
【问题描述】:
我想不出还有什么方法可以解决我的问题。这是我昨天做的一个线程,详细描述了父子类:https://stackoverflow.com/questions/3800450/many-to-one-unidirectional-gae-jdo-relationship-amongst-entities
我正在尝试添加 Truck 并将其持久化,但持久性管理器坚持认为父项的主键为 NULL,即使我在持久化子项之前记录了该值,并且父项不为空,实际上它也是应该设置的有效密钥。为什么持久性管理器看到我没有看到的东西?
try{
if (!findTruck(truck)){
_logger.warning("get tweeter key " + truck.getTweeter().getEncodedKey());
pm.makePersistent(truck);
}
}
finally {
pm.close();
}
来自日志:
09-27 06:37PM 12.158
com.google.truxmap.server.TruckJdoDAO addTruck: get tweeter key agp0cnV4bWFwcGVych8LEgdUd2VldGVyIhJrZXltdW5jaGllbWFjaGluZTEM
W 09-27 06:37PM 12.160
com.google.truxmap.server.TruckJdoDAO addTruck: addTruck exception: class java.lang.IllegalStateException. Message:Primary key for object of type Tweeter is null.
【问题讨论】:
-
显然任何异常都有一个堆栈跟踪来说明谁抛出它......可能是 GAE/J 插件
标签: google-app-engine persistence jdo datanucleus