Ola povo!
Procurei aqui no forum (nao soh aqui claro), mas nao consegui achar a soluçao.
Sou iniciante em JPA/HIBERNATE…
Vamos ao que interessa:
Tenho meu codigo java, que cria o banco (postgres), mas ao criar o banco, ele cria varios indices na tabela, os indices que são criados sao:
Index Name…On Field(s)
empresa_cnpj_key…cnpj
empresa_cod_gru_empresa_key…cod_gru_empresa
empresa_cod_gru_empresa_key1…cod_gru_empresa, cod_empresa
empresa_pkey…oid
Codigo para isso:
@Entity
@Table(name="empresa", uniqueConstraints={@UniqueConstraint(columnNames={"cod_empresa","cod_gru_empresa"})})
public class Empresa implements Serializable {
private static final long serialVersionUID = -4869398037764293153L;
@Id
@GeneratedValue( strategy = GenerationType.SEQUENCE, generator = "EMPRESA_OID" )
@SequenceGenerator( name = "EMPRESA_OID", sequenceName = "oid_empresa", allocationSize = 1 )
@Column(name="OID")
private Integer OID;
@Column(name="cod_empresa",length=12,nullable=false)
private String cod_empresa;
@Column(name="cod_gru_empresa",length=12,nullable=false)
private String cod_gru_empresa;
@Column(name="nome_empresa",length=60,nullable=false)
private String nome_empresa;
@Column(name="cnpj",length=14,unique=true,nullable=false)
private String cnpj;
...
@Cache(usage = CacheConcurrencyStrategy.NONE)
@ManyToOne(cascade = {CascadeType.REFRESH},
fetch= FetchType.EAGER,
targetEntity=Grupo_empresa.class)
@NotFound(action=NotFoundAction.IGNORE)
@JoinColumn(name="cod_gru_empresa",referencedColumnName="cod_gru_empresa",insertable=false,updatable=false)
private Grupo_empresa grupo_empresa;
...
Mas quando tento criar algo no banco, automaticamente o indice que é validado é o empresa_cod_gru_empresa_key, que valida apenas o codigo do grupo da empresa, sendo que o certo deveria ser empresa_cod_gru_empresa_key1 onde sao os 2 campos como chave…
Alguem poderia me dizer, como NAO gerar esses 4 indices? Ou entao como excolher qual indice sera validado?
Ou claro alguma outra soluçao???
Muito Obrigado.!