Pergunta

Quando faço relationsships com JPA usando hibernate, alguns nomes de coluna longos e desagradáveis ??terríveis são gerados.
Por exemplo. Eu tenho o seguinte actionPlan_actionPlanPK, o que significa que o actionPlan coluna é uma FK que aponta para actionPlanPK.
Para torná-la um pouco mais arrumado no DB eu gostaria se eu pudesse dar um nome a mim mesmo, de preferência apenas o nome que tem na classe entidade que possui o relacionamento.

Isso é possível com JPA?

Foi útil?

Solução

Sim. É possível especificar o seu próprio nome para uma coluna, se você não estiver satisfeito com os nomes padrão. Por exemplo, na classe com a referência ao PLANO DE ACÇÃO você pode especificar:

@ManyToOne
@JoinColumn(name="actionplanId")
public ActionPlan getActionPlan(){

}

E, assim, o nome da coluna será "actionplanid".

Outras dicas

Esta capacidade é parte da especificação do JPA e permite a nomeação de muitas das suas estruturas de banco de dados nas anotações. Estes incluem:

Naming sua tabela da seguinte forma:

@Entity
@Table(name="better_table_name")
public class MyConvolutedClassName {
}

Naming suas colunas da seguinte forma:

@Column(name="better_column_name")
private Date myConvolutedDateColumn;

Naming suas colunas que fazem parte de uma relação:

@ManyToOne
@JoinColumn(name="better_join_column_name")
private ClassName otherModelClass;

Há uma grande (embora não completamente up-to-date) cheatsheet para EJB 3.0 anotações (que inclui JPA), disponível em http://www.fnogol.de/media/ejb3.0-anno-cheat-1.2.pdf .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top