Error in Embeddedid

Asked

Viewed 106 times

0

I have the composite key below, the problem is that when creating the schema and save the values, Hibernate is reversing the values of TipoContrato with Distribuidora and vice versa. Someone has experienced a similar anomaly using the embeddedid?

@Embeddable
public class IdentificadorUnidadeConsumidoraId implements Serializable {

private static final long serialVersionUID = -8961508936592415161L;

/*
 * Além do idUnidade herdado, este identificador é informado pela
 * Distribuidora, único, mas não pode ser alterado.
 */
@Index(name = "IDX_IDENTUNIDADECONSUMIDORA_CODUNIDADECONSUMIDORA", columnNames = "CODUNIDADECONSUMIDORA")
@Column(name = "CODUNIDADECONSUMIDORA", length = 20, nullable = false)
private String codUnidadeConsumidora;

@Enumerated(EnumType.ORDINAL)
@Column(name = "TIPOCONTRATO", length = 20)
private TipoContrato tipoContrato;

@ManyToOne
@JoinColumn(name = "IDDISTRIBUIDORA")
private Distribuidora distribuidora;
  • When you go in the database columns, the values are reversed in the columns TIPOCONTRATO and IDDISTRIBUIDORA ?

  • exactly,for example if I set up the Enum String Type, the IDDISTRIBUTOR receives the string value of the Enum Type. schema creation and insertion are switched.

1 answer

1

Problema resolvido,

joinColumns order was interfering in inserting and creating columns like FK

Reversing: public Abstract class Contract{

@OneToOne
    @JoinColumns(value = { @JoinColumn(name = "CODUNIDADECONSUMIDORA"),
            @JoinColumn(name = "TIPOCONTRATO"),
            @JoinColumn(name = "IDDISTRIBUIDORA") })
    private IdentificadorUnidadeConsumidora identificador;


}

FOR:

public abstract class Contrato{

@OneToOne
    @JoinColumns(value = { @JoinColumn(name = "CODUNIDADECONSUMIDORA"),
            @JoinColumn(name = "IDDISTRIBUIDORA"),
            @JoinColumn(name = "TIPOCONTRATO"),})
    private IdentificadorUnidadeConsumidora identificador;
}

Does anyone know why this order interfere? makes any sense?

Browser other questions tagged

You are not signed in. Login or sign up in order to post.