Я пытаюсь вставить представление, используя datanucleus, проблема в том, что когда я помещаю @Persistent в поле, которое не имеет соответствующего поля в таблице, и я улавливаю ошибку:
11: 03: 42,782 ИНФОРМАЦИЯ [br.com.sigel.server.censo.dao.persistentDAO.ParametrosCensoDAO] - javax.jdo.JDODataStoreException: исключение выдает сбрасывающие изменения в хранилище данных
NestedThrowables:
java.sql.BatchUpdateException: ORA-01733: виртуальный столбец здесь не разрешен
но когда я добавляю @NotPersistent, поля не отображаются и поля остаются пустыми.
Мне нужно, чтобы эти поля были заполнены согласно представлению, но никогда не перезаписывались (только для чтения).
Мой код:
@PersistenceCapable(identityType = IdentityType.APPLICATION,detachable="true", table="VW_FILA_CENSO")
@Sequence(datastoreSequence = "SEQ_SG_FICE_SEQ", strategy = SequenceStrategy.CONTIGUOUS, name = "seqFice")
@Cacheable("false")
public class SG_Fila_Censo implements BeanModelTag,Serializable {
private static final long serialVersionUID = 1L;
@NotPersistent
private Integer escoSeq;
@Persistent(primaryKey="true", valueStrategy=IdGeneratorStrategy.SEQUENCE, sequence="seqFice")
private Integer fice_seq;
@Persistent
private Date fice_data_solicitacao;
@Persistent
private Boolean fice_processando;
@Persistent
private Boolean fice_priorizado;
@Persistent
private Integer fice_rece_seq;
@Persistent
private Integer fice_colb_seq;
@Persistent
private String unidade_escolar;
@Persistent
private String nome_colaborador;
@Persistent
private Integer etapa_relatorio;
@Persistent
private String cree_cod;
...
Мой взгляд:
CREATE OR REPLACE VIEW "SCH_SECULT3"."VW_FILA_CENSO"
(FICE_SEQ,FICE_DATA_SOLICITACAO,FICE_PROCESSANDO,FICE_PRIORIZADO,FICE_RECE_SEQ,FICE_COLB_SEQ,unidade_escolar,nome_colaborador,cree_cod,etapa_relatorio)
AS
(SELECT
SG_FILA_CENSO.FICE_SEQ,
SG_FILA_CENSO.FICE_DATA_SOLICITACAO,
SG_FILA_CENSO.FICE_PROCESSANDO,
SG_FILA_CENSO.FICE_PRIORIZADO,
SG_FILA_CENSO.FICE_RECE_SEQ,
SG_FILA_CENSO.FICE_COLB_SEQ,
VW_RELATORIO_CENSO.unidade_escolar,
VW_RELATORIO_CENSO.nome_colaborador,
VW_RELATORIO_CENSO.cree_cod,
VW_RELATORIO_CENSO.rece_etapa
FROM SG_FILA_CENSO,VW_RELATORIO_CENSO
where SG_FILA_CENSO.fice_rece_seq = VW_RELATORIO_CENSO.rece_seq
);
Кто-нибудь может мне помочь? Спасибо.