У меня есть мой доменный объект, 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);
}
}
Подводя итог, если я что-то изменяю в родительском объекте, он сохраняется, но если я изменяю что-то в дочернем объекте, это не так. Я что-то упустил очевидное?
Я установил точку останова прямо перед вызовами persist / merge, я вижу обновленное значение объекта, но, похоже, оно не сохраняется. Я также проверил на уровне базы данных, не повезло
Спасибо