【发布时间】:2011-11-13 01:01:51
【问题描述】:
我正在使用 Spring 和 JDO 连接到 MySQL 数据库。
当我持久化一个对象时,我希望看到makePersistent() 方法返回的创建对象。它确实返回了一个对象,但这个对象只有新创建的对象的 ID。所有其他持久化的字段现在都具有 null 值。
在下面的代码示例中,我用carouselNumber 插入了一个值12。返回的对象将该值设置为 NULL,并且 id 具有数据库中新创建的 ID 值。
我使用了JDOHelper.getObjectState(),发现我的对象处于瞬态状态。
我想知道是否缺少一些注释来告诉JDO 返回对象上的所有值,而不仅仅是新生成的 ID。
编辑: 我做了一些进一步的探索,发现当我使用原始 Datanucleus JDP API 时,thsi 工作正常。问题似乎只出现在我使用 Spring 的 JDO 模板时。我真的很想了解为什么会有所不同。谢谢
提前致谢,
布赖恩。
@PersistenceCapable(table = "CAROUSEL", identityType = IdentityType.APPLICATION)
public class Carousel {
@PrimaryKey(column = "ID")
@Persistent(valueStrategy = IdGeneratorStrategy.INCREMENT)
private Long id;
@Column(name = "CAROUSEL_NUM")
private int carourselNumber;
......
public class CarouselDAOImpl extends JdoDaoSupport implements ICarouselDAO {
public Carousel insert(Carousel carousel) {
return getJdoTemplate().makePersistent(carousel);
}
.....
【问题讨论】: