0

我有缓存使用问题,我有以下映射。无论出于何种原因,ST_CD 两次映射到 2 个不同的属性。休眠正在抛出

org.hibernate.MappingException: Repeated column in mapping for entity: my.package.State column: ST_CD (should be mapped with insert="false" update="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

它在映射中的问题,

最后两个属性中使用了相同的列(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 回答
0

当你在休眠中创建一个实体时,它应该准备好使用一个普通的 bean。无论您是否缓存,都无法通过多个属性更新数据库。因此,您需要在其中一个属性上使用“insert="false" update="false"`。

于 2012-07-15T14:13:51.003 回答