我有缓存使用问题,我有以下映射。出于任何原因,ST_CD被映射两次到2个不同的属性。 Hibernate正在抛出
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>
答案 0 :(得分: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"/>
答案 1 :(得分:0)
在hibernate中创建实体时,应准备好使用普通bean。无论您是否缓存,都无法通过多个属性更新数据库。所以你需要在其中一个属性上使用'insert =“false”update =“false”`。