2011-06-01 32 views
4

由於Hibernate JPA 2元模型生成器的一些奇怪行爲,我需要將所有實體的訪問類型設置爲AccessType.FIELD。 - 因爲我不想爲每個要求設置默認訪問類型的方法添加@Access註釋。如何爲JPA2實體定義默認訪問類型

到現在爲止我這個orm.xml tryed它:

<?xml version="1.0" encoding="UTF-8"?> 
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
    http://java.sun.com/xml/ns/persistence/orm_2_0.xsd" 
    version="2.0"> 

    <persistence-unit-metadata> 
     <persistence-unit-defaults> 
      <access>FIELD</access> 
     </persistence-unit-defaults>   
    </persistence-unit-metadata> 

但這似乎被忽略,發電機使用屬性訪問默認。

當我這行加入{{orm.xml中}}:

<access>FIELD</access> 
<entity class="domain.Banner"></entity> 
<entity class="domain.Stuff"></entity> 
... 

發電機開始瞻仰字段(而不是屬性),但是這是更差那麼註釋方式。

所以我的問題是:如何設置默認的AccessType?

+0

我使用Hibernate 3.6與JPA 2.0和主要使用字段訪問在我所有的實體。元模型生成器沒有出現任何問題。使用元模型生成器的問題到底是什麼? – 2011-06-02 00:04:25

+0

@edalorzo:我在Spring Roo環境中做同樣的事情,即使實體沒有Roo註釋Hibernate只關注屬性,但不注意fiels(除非我是@Access註釋) – Ralph 2011-06-05 13:20:03

+1

您是否將JPA字段或getter/setter上的註釋?如果你把它們放在getter/setter中,JPA將使用屬性訪問類型。 – Behrang 2011-06-16 22:11:33

回答

0

您是否設法找到解決您的問題的方法?我不確定hibernate和JPA是否支持這個功能,但是您可能可以使用軟件包級別的註釋。下面是一個示例類型定義從http://www.ctrlspace.ca/?p=10

​​
相關問題