休止状態を使用して JPA との関係を作成すると、ひどく長くて厄介な列名が生成されます。
例えば。これはactionPlan_actionPlanPK
、列actionPlan
が を指す FK であることを意味しますactionPlanPK
。
DB でもう少しきれいに見えるようにするために、自分で名前を付けることができればと思います。できれば、関係を所有するエンティティ クラスにある名前だけを付けてください。
これはJPAで可能ですか?
休止状態を使用して JPA との関係を作成すると、ひどく長くて厄介な列名が生成されます。
例えば。これはactionPlan_actionPlanPK
、列actionPlan
が を指す FK であることを意味しますactionPlanPK
。
DB でもう少しきれいに見えるようにするために、自分で名前を付けることができればと思います。できれば、関係を所有するエンティティ クラスにある名前だけを付けてください。
これはJPAで可能ですか?
はい。デフォルトの名前に満足できない場合は、列に独自の名前を指定することができます。たとえば、ActionPlan への参照を含むクラスでは、次のように指定できます。
@ManyToOne
@JoinColumn(name="actionplanId")
public ActionPlan getActionPlan(){
}
したがって、列名は「actionplanid」になります。
この機能は JPA 仕様の一部であり、アノテーションで多くのデータベース構造に名前を付けることができます。これらには以下が含まれます:
次のようにテーブルに名前を付けます。
@Entity
@Table(name="better_table_name")
public class MyConvolutedClassName {
}
次のように列に名前を付けます。
@Column(name="better_column_name")
private Date myConvolutedDateColumn;
リレーションシップの一部である列に名前を付ける:
@ManyToOne
@JoinColumn(name="better_join_column_name")
private ClassName otherModelClass;
http://www.fnogol.de/media/ejb3.0-anno-cheat-1.2.pdfで入手できる EJB 3.0 アノテーション (JPA を含む) の優れた (最新ではありませんが) チートシートがあります。