Estou com o seguinte problema,
tem um relacionamento entre Modalidade e SubModalidade , algo como 1 Modalidade tem N Submodalidades:
@Entity
@Table(name="SUBMODALID")
public class SubModalidade implements Serializable{
/**
* Default Serial ID
*/
private static final long serialVersionUID = 1L;
@EmbeddedId
private SubModalidadePK subModalidadePK;
// demais propriedades da classe
// Relacionamento entre Modalidade
@ManyToOne
@JoinColumns({
@JoinColumn(name="CDADMIN", referencedColumnName="CDADMIN", insertable=false, updatable=false ),
@JoinColumn(name="CDMAPA", referencedColumnName="CDMAPA", insertable=false, updatable=false),
@JoinColumn(name="CDREALIZAC", referencedColumnName="CDREALIZAC", insertable=false, updatable=false),
@JoinColumn(name="CDMODALIDA", referencedColumnName="CDMODALIDA", insertable=false, updatable=false)
})
private Modalidade modalidade;
@Entity
public class Modalidade implements Serializable{
/**
* Default Serial ID
*/
private static final long serialVersionUID = 1L;
/**
* Classe responsável em fazer a chave Composta da Entidade Modalidade
*/
@EmbeddedId
private ModalidadePK modalidaPK;
// demais propriedades
@OneToMany(mappedBy="modalidade")
private List<SubModalidade> subModalidade;
aqui é o erro que me ocorre, quando o servidor é inicializado,
09:38:29,705 ERROR [SchemaUpdate] Unsuccessful: alter table SUBMODALID add constraint FKAA81B6483AE76290 foreign key (CDMAPA, CDADMIN, CDREALIZAC, CDMODALIDA) references Modalidade
09:38:29,720 ERROR [SchemaUpdate] DB2 SQL error: SQLCODE: -20255, SQLSTATE: 42915, SQLERRMC: FKAA81B648;DB2DBA.SUB;DB2DBA.MOD;DB2DBA.SUB;DB2DBA.SUBMODALID.FKAA81;3
09:38:29,720 INFO [SchemaUpdate] schema update complete
O Banco é o DB2, essas tabelas ja existem no banco assim como o relacionamento entre elas, que está na seguinte ordem:
CDADMIN, CDMAPA, CDREALIZAC, CDMODALIDA
então eu acredito que seja, ele (JPA) tenta se relacionar em uma ordem diferente da existente (constraint) retorna o erro…
depois ele deve criar da forma que ele quer…
embora o relacionamento ocorra na aplicação corretamente quando eu faço o getModalidade da Classe SubModalidade (isso porque creio eu, apos o erro ele cria da forma que ele espera), mas eu queria saber como resolver tal erro, pra que não seja preciso o JPA criar uma outra constraint e sim usar a que ja existe no banco.
t+
)