Java JPA:持久化对象,父对象正常,但子对象未更新
我有我的域对象,Java JPA:持久化对象,父对象正常,但子对象未更新,java,hibernate,jpa,object-persistence,Java,Hibernate,Jpa,Object Persistence,我有我的域对象,Client,我在JSP上有一个预先填充了数据的表单,我可以接受修改后的值,并保存该对象 Client有一个名为MarketResearch的抽象实体,然后通过三个更具体的子类之一进行扩展 我有一个表单来预填充一些市场调研数据,但是当我进行更改并尝试持久化客户端时,它没有保存,有人能给我一些关于我哪里出错的提示吗 我的3个域类如下(删除的访问器等) 这就是我坚持的方式 public void persistClient(Client client) { if (clien
Client
,我在JSP上有一个预先填充了数据的表单,我可以接受修改后的值,并保存该对象
Client
有一个名为MarketResearch
的抽象实体,然后通过三个更具体的子类之一进行扩展
我有一个表单来预填充一些市场调研
数据,但是当我进行更改并尝试持久化客户端
时,它没有保存,有人能给我一些关于我哪里出错的提示吗
我的3个域类如下(删除的访问器等)
这就是我坚持的方式
public void persistClient(Client client)
{
if (client.getId() != null)
{
getJpaTemplate().merge(client);
getJpaTemplate().flush();
} else
{
getJpaTemplate().persist(client);
}
}
总而言之,如果我在父对象上更改了某些内容,它将保持不变,但如果我在子对象上更改了某些内容,它不会保持不变。我是否错过了一些显而易见的东西
我在persist/merge调用之前放置了一个断点,我可以看到对象上的更新值,但它似乎没有保存。我也在数据库级别进行了检查,运气不好
谢谢您需要在
@OneToOne
上设置适当的级联
选项,以便级联您的操作:
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "MARKET_RESEARCH_ID")
private MarketResearch marketResearch;
在hibernate中启用show_sql。看看它产生了什么。谢谢,这就成功了。事实上,我之前就试过了,似乎我需要重新运行,而不仅仅是在netbeans中进行“重建”。Noob错误;)
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "MARKET_RESEARCH_ID")
private MarketResearch marketResearch;