У меня есть сущность базового класса, которая выглядит так:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "IDTYPE",
discriminatorType = DiscriminatorType.STRING,
length = 12)
public class ProtoObject implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String idtype;
// more columns
У меня есть несколько подклассов, которые я создаю и сохраняю. Однако я обнаружил, что даже если для столбца idtype устанавливается то, что я ожидал в базе данных (проверка с помощью отдельного инструмента браузера БД), объекты Java idtype свойство не устанавливается для тех объектов, которые EntityManager имеет в своем кеше.
Если я выполняю поиск объектов с помощью EntityManager, для последних сохраненных объектов idtype оказывается пустым! Если я закрою приложение и снова открою его, данные появятся в порядке.
Это приложение JSF 2, использующее EclipseLink 2.3.2.v20111125-r1046.
Это известная проблема и может ли кто-нибудь предложить обходной путь?