我有我的域对象,Client
我的 JSP 上有一个预先填充了其数据的表单,我可以接受修改后的值,并保留该对象。
Client
有一个名为 的抽象实体MarketResearch
,然后由三个更具体的子类之一扩展。
我有一个表单来预填充一些MarketResearch
数据,但是当我进行更改并尝试持久Client
保存时,它没有被保存,有人可以给我一些关于我哪里出错的指示吗?
我的 3 个域类如下(删除访问器等)
public class Client extends NamedEntity
{
@OneToOne
@JoinColumn(name = "MARKET_RESEARCH_ID")
private MarketResearch marketResearch;
...
}
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class MarketResearch extends AbstractEntity
{
...
}
@Entity(name="MARKETRESEARCHLG")
public class MarketResearchLocalGovernment extends MarketResearch
{
@Column(name = "CURRENT_HR_SYSTEM")
private String currentHRSystem;
...
}
这就是我坚持的方式
public void persistClient(Client client)
{
if (client.getId() != null)
{
getJpaTemplate().merge(client);
getJpaTemplate().flush();
} else
{
getJpaTemplate().persist(client);
}
}
总而言之,如果我更改父对象上的某些内容,它会持续存在,但如果我更改子对象上的某些内容,则不会。我错过了什么明显的东西吗?
我在持久/合并调用之前放置了一个断点,我可以看到对象上的更新值,但它似乎没有保存。我也在数据库级别检查过,没有运气
谢谢