0

キャッシュの使用方法について質問があります。次のマッピングがあります。ST_CD は、何らかの理由で 2 つの異なるプロパティに 2 回マップされます。休止状態がスローされています

org.hibernate.MappingException: Repeated column in mapping for entity: my.package.State column: ST_CD (should be mapped with insert="false" update="false")

私はキャッシュを「読み取り専用」として使用しているので、挿入と更新は常に false だと思います。なぜ明示的に insert="false" update="false" と言う必要があるのですか?

<class mutable="false" name="my.package.State" table="STATE_TABLE">
    <cache usage="read-only" />
    <id name="id" column="ST_ID" type="long" />
    <property name="code" type="string" column="ST_CD" />
    <property name="stateAbbreviationCode" type="string" column="ST_CD"/>
    <!- Other properites -->
</class>
4

2 に答える 2

0

休止状態でエンティティを作成すると、通常の Bean を使用する準備が整うはずです。キャッシュするかどうかに関係なく、複数のプロパティを使用してデータベースを更新することはできません。そのため、プロパティの 1 つで ' insert="false" update="false"` を使用する必要があります。

于 2012-07-15T14:13:51.003 に答える
0

マッピングの問題、

最後の 2 つのプロパティで同じ列 (ST_CD) が使用されています

<property name="code" type="string" column="ST_CD" />    
<property name="stateAbbreviationCode" type="string" column="ST_CD"/> 

正しいマッピングは次のようになります。

<property name="code" type="string" column="ST_CD" />    
<property name="stateAbbreviationCode" type="string" column="ST_ABBR_CD"/> 
于 2012-07-13T20:38:31.290 に答える