0
生成我的實體的實現,並且我幾乎無法控制它。我面臨的主要問題是布爾字段getter方法具有不同的命名約定:is<FieldName>()
。javax.persistence PROPERTY訪問自定義getter/setter名稱
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>
然而,這將導致的Hiberante尋找getIsPrivate()
方法,即不存在。
由於我需要使用PROPERTY訪問,但我的get方法不遵循JavaBeens約定,有沒有什麼辦法可以說服hiberante查找特定的方法或模式,以便我可以映射is<FieldName>()
方法?
請不要分享代碼。 –
嗯......'是()'已經遵循約定,除非它是一個'java.lang.Boolean'而不是一個原始'boolean' –
crizzis