0
をマップdoesntの:Hibernateは私がスーパークラスを手に入れた子クラス
public class GlobalTranslationAbstract {
private String value;
private GlobalTranslationId globalTranslationId = new GlobalTranslationId();
public GlobalTranslationAbstract() {
}
public GlobalTranslationAbstract(String name, String value, String language) {
setName(name);
setValue(value);
setLanguage(language);
}
public GlobalTranslationAbstract(String name, String value, String language, long instanceId, long productId) {
setName(name);
setValue(value);
setLanguage(language);
setInstanceId(instanceId);
setProductId(productId);
}
public String getName() {
return globalTranslationId.getName();
}
public void setName(String name) {
globalTranslationId.setName(name);
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getLanguage() {
return globalTranslationId.getLanguage();
}
public void setLanguage(String language) {
globalTranslationId.setLanguage(language);
}
public void setInstanceId(long instanceId){
globalTranslationId.setInstanceId(instanceId);
}
public void setProductId(long productId){
globalTranslationId.setProductId(productId);
}
public long getInstanceId(){
return globalTranslationId.getInstanceId();
}
public long getProductId(){
return globalTranslationId.getProductId();
}
/**
* @deprecated Only to DB
*/
public GlobalTranslationId getGlobalTranslationId() {
return globalTranslationId;
}
/**
* @deprecated Only to DB
*/
public void setGlobalTranslationId(GlobalTranslationId globalTranslationId) {
this.globalTranslationId = globalTranslationId;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (!(o instanceof GlobalTranslationAbstract))
return false;
GlobalTranslationAbstract that = (GlobalTranslationAbstract) o;
if (!globalTranslationId.equals(that.globalTranslationId))
return false;
return true;
}
@Override
public int hashCode() {
return globalTranslationId.hashCode();
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("Name: ").append(getName());
sb.append("\tValue: ").append(getValue());
sb.append("\tLanguage: ").append(getLanguage());
return sb.toString();
}
}
と子クラス、このクラスはのhbm.xmlファイルにマッピングされている
public class GlobalTransformerTranslationImpl extends GlobalTranslationAbstract
implements GlobalTransformerTranslation {
private static AcseleLogger log = AcseleLogger.getLogger(GlobalTransformerTranslationImpl.class);
private static final GlobalTransformerTranslationPersister persister = GlobalTransformerTranslationPersister.Impl.getInstance();
private String transformerID;
/**
* @deprecated Only to DB
*/
public GlobalTransformerTranslationImpl() {
super();
}
public String getTransformerId() {
return transformerId;
}
public void setTransformerId(String transformerId) {
this.transformerId = transformerId;
}
public GlobalTransformerTranslationImpl(String name, String value, String language) {
super(name, value, language);
}
public void update() throws ApplicationException, TechnicalException {
persister.update(this);
}
public void delete() throws ApplicationException, TechnicalException {
persister.delete(this);
}
}
ののhbm.xmlファイル子クラス:
<hibernate-mapping>
<class name="com.consisint.acsele.multilanguage.beans.impls.GlobalTransformerTranslationImpl" table="CDTR_TRANSFORMERTRANSLATION" >
<composite-id name="globalTranslationId" class="com.consisint.acsele.multilanguage.beans.impls.GlobalTranslationId" unsaved-value="any">
<key-property name="name" column="TTL_NAME"/>
<key-property name="language" column="TTL_LANGUAGE"/>
<key-property name="instanceId" column="INS_PK"/>
<key-property name="productId" column="PRO_ID"/>
</composite-id>
<property name="value" column="TTL_VALUE"/>
<property name="transformerId" column="TRF_ID"/>
</class>
子クラスに "transformerId"フィールドを持たせようとしていますが、動作しません... Hibernateはスーパークラスのフィールドを取り、子クラスフィールドを無視します
例外がスローされ、アプリケーションが死ぬ
おかげ
を助けてください、それはそのクラスに固有の原因私は子クラスのフィールドを必要と私はスーパークラスでそれをしたいいけないとtransformerIdで検索をしたいと私はそれをを行うカント
例外:
Caused by: net.sf.hibernate.PropertyNotFoundException: field not found: transformerId
at net.sf.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:74)
at net.sf.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:80)
at net.sf.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:80)
at net.sf.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:88)
at net.sf.hibernate.util.ReflectHelper.getter(ReflectHelper.java:81)
at net.sf.hibernate.util.ReflectHelper.reflectedPropertyType(ReflectHelper.java:86)
at net.sf.hibernate.mapping.SimpleValue.setTypeByReflection(SimpleValue.java:172)
... 55 more
私は同じフィールドを別のhbm.xmlファイルに入れていましたが、それは問題でした...しかし、ありがとう –