注意:フルSSCCEと再現可能なソースコードはhere on my GitHub repoです。 READMEのように、クローンして、私が見ているエラーを再現するために./gradlew clean build
を実行してください。Hibernate/JPA @AttributeOverridesがGroovyでうまくいきません
は私がGroovyの(ないジャワ)のMySQLへ/から/書き込みエンティティを読み取るためにHibernate/JPAを使用する春ブーツアプリのデータモデルを設計しています。私のすべてのエンティティは、別の識別子( "refId
")と同様にPKを提供する抽象的なBaseEntity
を拡張します。例えば:
@Canonical
@Entity
@MappedSuperclass
abstract class BaseEntity {
@Id
Long id
String refId
}
@Canonical
@Entity
@AttributeOverrides({
@AttributeOverride(name = "id", [email protected](name="customer_id")),
@AttributeOverride(name = "refId", [email protected](name="customer_ref_id"))
})
class Customer extends BaseEntity {
@Column(name = "customer_name")
String name
@Column(name = "customer_fav_food")
String favoriteFood
}
各エンティティがBaseEntity
を拡張し、私はid
とrefId
フィールドに独自のカラム名を持つように各サブクラス/エンティティ/テーブルをしたいので、私はAttributeOverrides
ことを使用する必要があるので、あなたが、見ることができるように各サブクラスの宣言。
しかし、AttributeOverrides
は、コンパイラの問題を引き起こしているため、私はプレーン・オア・ジャパンでは再現できません。コンパイル時にunexpected token
というエラーが[email protected](name="customer_id")),
に発生しています。
何が起こっているのかを誰でも再現して把握できますか?
勝者の勝者の鶏の夕食:あなたはこのように、代わりに
[ ... ]
を使用する必要があります!本当にありがとう! – smeeb歓迎します:-) @smeeb – dic19