Fala galera,
estou com um problema sério aki no meu projeto, tenho uma herança mapeada da seguinte forma:
@Entity
@Table(name = "aditivo")
@Inheritance(strategy = InheritanceType.JOINED)
@Name("aditivo")
public class Aditivo implements Serializable {
private static final long serialVersionUID = -1247432300881892279L;
@Id
@SequenceGenerator(name = "aditivo_generator", sequenceName = "contratos.seq_aditivo", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "aditivo_generator")
private Integer id;
@Column(name = "numero")
private Integer numero;
@Column(name = "ano_aditivo")
private Integer ano;
@ManyToOne
@JoinColumn(name = "id_contrato")
private Contrato contrato;
private String objeto;
private String observacao;
@Column(name = "data_inicial")
@Temporal(TemporalType.DATE)
private Date dataInicial;
@Column(name = "data_final")
@Temporal(TemporalType.DATE)
private Date dataFinal;
@Column(name = "data_criacao")
@Temporal(TemporalType.TIMESTAMP)
private Date dataCriacao;
@OneToMany(mappedBy = "aditivo")
private List<AnexoAditivo> anexosAditivo;
@OneToMany(mappedBy = "aditivo", cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
private List<AditivoServico> aditivoServicos;
@OneToMany(mappedBy = "aditivo", cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
private List<AditivoCusto> aditivoCustos;
@OneToMany(mappedBy = "aditivo", cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
private List<NotaEmpenhoAditivo> notasEmpenhoAditivo;
@Transient
private String nomeTipo = "Documento";
@Column(name = "valor_global")
private Double valorGlobal;
@Column(name = "valor_global_estimado")
private Double valorGlobalEstimado;
@Column(name = "valor_total_instalacao")
private Double valorTotalInstalacoes;
@Column(name = "valor_total_mensal")
private Double valorTotalMensal;
@Column(name = "valor_total_desconto")
private Double valorTotalDesconto;
@Transient
private Double valorMensal;
private Double desconto;
...........
getters/setters
...........
}
@Entity
@Table(name = "apostila")
@PrimaryKeyJoinColumn(name = "id_aditivo")
@Name("apostila")
public class Apostila extends Aditivo {
private static final long serialVersionUID = 2715487650127498585L;
@Column(name = "numero_processo")
private String numeroProcesso;
@Column(name = "fundamento_legal")
private String fundamentoLegal;
@Column(name = "programa_trabalho")
private String programaTrabalho;
@Column(name = "nome_recurso")
private String nomeRecurso;
@Column(name = "numero_recurso")
private String numeroRecurso;
@Enumerated
private Booleano ativo;
@Transient
public String getNomeTipo() {
return "Apostila";
}
.........
getters/setters
...........
}
@Entity
@Table(name = "termo_aditivo")
@PrimaryKeyJoinColumn(name = "id_aditivo")
@Name("termoAditivo")
public class TermoAditivo extends Aditivo {
private static final long serialVersionUID = 195123036668256522L;
@OneToOne
@JoinColumn(name = "id_proposta")
private PropostaComercial propostaComercial;
@Column(name = "data_publicacao_doe")
@Temporal(TemporalType.DATE)
private Date dataPublicacaoDoe;
@Column(name = "data_assinatura")
@Temporal(TemporalType.DATE)
private Date dataAssinatura;
private Integer prorrogacao;
........
getters/setters
.............
}
quando eu persisto um objeto do tipo Apostila, tudo funciona normalmente, porem quando eu tento persistir um objeto do tipo TermoAditivo, o codigo é executado normalmente mas o registro não é salvo no banco e nenhuma exceção é lançada. O codigo que persiste os objetos é o seguinte:
@Stateless
public class AditivoServicoBean implements AditivoServicoLocal {
@PersistenceContext
private EntityManager em;
public void cadastrar(Aditivo aditivo) throws Exception {
em.persist(aditivo);
}
}
Será que alguem já passou por essa situação e pode me ajudar?