瞬态字段默认

问题描述:

我想,如果有可能变化的JPA默认行为,我要让所有领域的“瞬时”瞬态字段默认

我的默认值的Embedable

<embeddable class="beans.Address" metadata-complete="false" > 

    <attributes > 

     <basic name="id"> 
      <column name="address_id"></column> 
     </basic> 
     <basic name="description"> 
      <column name="address_description"></column> 
     </basic> 
     <transient name="city"></transient> 
    </attributes> 
</embeddable> 


<entity class="beans.Membership" > 
    <table name="cc_membership"> 
    </table> 
    <!-- --> 
    <attributes> 
     <id name="id"> 
      <column name="id"/> 
      <generated-value generator="sq_cc_membership" strategy="SEQUENCE"/> 
     </id> 

     <!--more properties--> 

     <basic name="shortName"> 
      <column name="shortName"/> 
     </basic> 

     <version name="version"></version> 

     <many-to-one name="physicalPerson"> 
      <join-column name="physical_person_id"></join-column> 
     </many-to-one> 

     <embedded name="address"> 
     </embedded> 
    </attributes> 
</entity> 

的“豆。地址”类更多的属性,但是当我准备增加更多的特性,我不希望看到我的cc_membership表中多个字段,

什么是最好的方式做到这一点

谢谢,

+0

这些类是在不同的Osgi Bundles – jrey 2014-10-29 16:00:53

这不能在标准的JPA中完成,所以你会诉诸提供商的特定功能。

的EclipseLink-orm.xml中有,你可以在此描述与XML映射元数据完成orm.xml中标签使用排除默认的映射标签: https://wiki.eclipse.org/EclipseLink/Examples/JPA/EclipseLink-ORM.XML#.3Cexclude-default-mappings.2F.3E

我不知道Hibernate有类似的东西。

+0

谢谢,作品OK! – jrey 2014-10-30 17:04:09

+0

我正在使用Eclipselink – jrey 2014-10-30 17:05:20

我不确定你可以(或者甚至如果你想要)改变默认的JPA行为,但要完成这个,你可以创建一个对象,它可以容纳所有新的字段,蚂蚁标记整个对象作为暂时的。这样

public class TransientFields { 
    private String field1; 
    private String field2; 
    ... 
    // getters and setters 
} 

而且Address东西看起来像这样

@Embeddable 
public class Address { 
    // persistent fields 
    ... 
    @Transient 
    private TransientFields transientFields; 
    // getters and setters 
} 

然后,你可以改变TransientFields不会影响数据库。

+0

嗨Predrag,我有一个OSGI项目,地址在一个Osgi Bundle中,而Membership在另一个Osgi Bundle中。如果一个Osgi Bundle可以被修改。不会影响另一个。 – jrey 2014-10-30 13:13:37

+0

@ jrey.py对不起,我没有太注意,因为我认为可以用类似的方式完成相同的更改。 – 2014-10-30 13:24:06