Domanda

Quando stabilisco relazioni con l'APP usando l'ibernazione, vengono generati alcuni terribili nomi di colonne lunghe e scomode. Per esempio. Ho il seguente actionPlan_actionPlanPK , il che significa che la colonna actionPlan è un FK che punta a actionPlanPK .
Per renderlo un po 'più pulito nel DB, vorrei poterlo assegnare io stesso, preferibilmente solo il nome che ha nella classe di entità che possiede la relazione.

È possibile con JPA?

È stato utile?

Soluzione

Sì. È possibile specificare il proprio nome per una colonna se non si è soddisfatti dei nomi predefiniti. Ad esempio nella classe con il riferimento ad ActionPlan puoi specificare:

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

}

E quindi, il nome della colonna sarà " actionplanid " ;.

Altri suggerimenti

Questa funzionalità fa parte delle specifiche JPA e consente la denominazione di molte strutture del database nelle annotazioni. Questi includono:

Nomina il tuo tavolo come segue:

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

Nomina le tue colonne come segue:

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

Denominazione delle colonne che fanno parte di una relazione:

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

Esiste un grande cheatheet (anche se non abbastanza aggiornato) per le annotazioni EJB 3.0 (che include JPA) disponibile su http://www.fnogol.de/media/ejb3.0-anno-cheat-1.2.pdf .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top