У меня есть сущность, следующая
@Entity
@Table(name="DATMLAUENDCTT")
public class EnderecoContatoLaudoEntity implements Serializable {
/** A Constante serialVersionUID. */
private static final long serialVersionUID = 1L;
/** O id. */
@EmbeddedId
private EnderecoContatoLaudoEntityPK id;
/** O nome contato. */
@Column(name="CTTNOM")
private String nomeContato;
/** O Codigo ddd telefone contato. */
@Column(name="CTTTELDDDCOD")
private BigDecimal codigoDDDTelefoneContato;
/** O numero telefone contato. */
@Column(name="CTTTELNUM")
private BigDecimal numeroTelefoneContato;
//bi-directional many-to-one association to TipoTelefoneEntity
/** O tipo telefone entity. */
@ManyToOne
@JoinColumn(name="TELTIPSEQNUM",referencedColumnName="TELTIPSEQNUM")
private TipoTelefoneEntity tipoTelefoneEntity;
//bi-directional many-to-one association to EnderecoLaudoEntity
/** O endereco laudo entity. */
@ManyToOne
@JoinColumns({
@JoinColumn(name="LAUSEQNUM", referencedColumnName="LAUSEQNUM"),
@JoinColumn(name="ENDTIPSEQNUM", referencedColumnName="ENDTIPSEQNUM")
})
private EnderecoLaudoEntity enderecoLaudoEntity;
И это встроенный идентификатор следующим образом:
@Embeddable
public class EnderecoContatoLaudoEntityPK implements Serializable {
//default serial version id, required for serializable classes.
/** A Constante serialVersionUID. */
private static final long serialVersionUID = 1L;
/** Coloquei os nomes das colunas que não vieram quando foi gerada pelo RAD. */
@Column(name = "LAUSEQNUM", insertable = false, updatable = false)
private long numeroSequenciaLaudo;
/** O numero sequencia tipo endereco. */
@Column(name = "ENDTIPSEQNUM", insertable = false, updatable = false)
private long numeroSequenciaTipoEndereco;
/** O numero sequencia tipo telefone. */
@Column(name = "TELTIPSEQNUM", insertable = false, updatable = false)
private long numeroSequenciaTipoTelefone;
Мой вопрос: почему вставка не работает, когда я пытаюсь сохранить объект?
Ошибка говорит мне, что TELTIPSEQNUM имеет значение null. Но я устанавливаю объект tipoTelefoneEntity
, который соответствует столбцу TELTIPSEQNUM
.
Теперь, когда я удаляю insertable = false, updateable = false, вот так:
/** O numero sequencia tipo phone. */ @Column(name = "TELTIPSEQNUM") private long numeroSequenciaTipoTelefone;
Тогда постоянство работает.
Разве вставка не должна использовать TELTIPSEQNUM
из объекта TipoTelefoneEntity
, который находится вне встроенного объекта id?