我使用Spring和JDO连接到MySQL数据库。
当我持久化对象时,我希望看到makePersistent()
方法返回的创建对象。它确实返回一个对象,但该对象只有新创建的对象的ID。现在持久化的所有其他字段的值都为null。
在下面的代码示例中,我使用carouselNumber
插入值12。返回的对象将该值设置为NULL,并且id具有从数据库中新创建的ID值。
我已使用JDOHelper.getObjectState()
并发现我的对象处于瞬态状态。
我想知道是否有一些我缺少的注释告诉JDO
返回对象的所有值,而不仅仅是新生成的ID。
修改 我已经做了一些进一步的探索,并发现当我使用原始的Datanucleus JDP API时,它可以正常工作。问题似乎只是在我使用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);
}
.....
答案 0 :(得分:0)
makePersistent方法会改变您传入的轮播对象以生成ID,因此不需要返回任何内容。只是让你的方法无效并使用你传入的旋转木马。