2011-06-01 65 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

​​
相关问题