エンティティの実装が生成されています。私が直面している主な問題は、booleanフィールドgetterメソッドが異なる命名規則を持っているということです:is<FieldName>()
。javax.persistence PROPERTYカスタムゲッター/セッターの名前にアクセスする
public class Bookmark {
/**
* @generated
*/
public boolean isIsPrivate() {
...
}
/**
* @generated
*/
public void setIsPrivate(boolean newIsPrivate) {
...
}
}
特定の実装は、エンティティ上の実際のフィールドが欠けている、私はそれが狂った音を知っているが、それはそれがどのようにあります。したがって、私はPROPERTYアクセスを使用する必要があります。私は、コードの生成方法を変更することはできませんので、私はorm.xmlマッピングファイルでこれをやっている:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd">
<persistence-unit-metadata>
<xml-mapping-metadata-complete/>
</persistence-unit-metadata>
<package>org.hibernate.ogm.backendtck.type.ogmemf.impl</package>
...
<entity class="Bookmark" access="PROPERTY">
<attributes>
<basic name="isPrivate"/>
</attributes>
</entity>
</entity-mappings>
をしかし、これは存在しませんgetIsPrivate()
方法、探しhiberanteになります。
私はPROPERTYアクセスを使用する必要があるので、私のgetメソッドはJavaBeensの規約に従わないので、特定のメソッドやパターンを探すためにhiberanteを説得する方法はありますか?is<FieldName>()
メソッドをマップできますか? JPA仕様のセクション2.2
In this case, for every persistent property property of type T of the
entity, there is a getter method, getProperty, and setter method
setProperty. For boolean properties, isProperty may be used as an
alternative name for the getter method. [2]
For single-valued persistent properties, these method signatures are:
• T getProperty()
• void setProperty(T t)
あたりとして
は共有コードを理解できません。 –
Ummm ... '()'はすでに規約に従っていますが、プリミティブ 'boolean'ではなくjava.lang.Booleanです。 –
crizzis