私のドメインモデルを永続化メカニズムから切り離すために、XMLを使用してドメインモデルからdbエンティティにマッピングを設定しています。Map <String、MyValueObject>をxmlでjpaにマップする方法?
public class Tenant {
long id;
Map<String, AuthApp> authApps;
...
}
そして、この値オブジェクト:
public class AuthApp {
String authCode;
int durationInDays;
...
}
値オブジェクトが何のライフサイクル自体を持っていない、それは実体上のdenpendsだ 私はこの実体を持っています。 RDBMSに2つのテーブル "tenant"と "auth_app"を作成します。 このケースでJPA XMLを書く方法を教えてもらえますか?私がこれまでにコード化されてきた XMLは、このようなものです:
<entity class="Tenant">
<table name="tenant"/>
<attributes>
<id name="id"><generated-value strategy="AUTO" /></id>
<element-collection name="authApp">
<map-key name="app_id"/>
<collection-table name="auth_app">
<join-column name="tenant_id" referenced-column-name="id"/>
</collection-table>
</element-collection>
</attributes>
</entity>
私はそれが正しいですかどうかわからない、とどのように継続します。
私は、JPAプロバイダとしてhibernateを使用しています。
"AuthApp"はおそらくエンティティですか?またはそれを永続化するために属性コンバータを使用していますか? – DN1
@ DN1いいえ、私は上記のように、エンティティではなく値オブジェクトです。そして、私はコンバータを使用していない、私はそれがこの場合に動作することができるのだろうか。 –
JPA対応(エンティティ、埋め込み可能)でない場合は、(@ AuthAppの)複数のフィールドをマップを格納するテーブルの単一の列値に変換するために '@ AttributeConverter'を指定しない限り、永続化できません。 – DN1