使嵌入字段在JPA中不可更新

时间:2013-03-05 14:30:24

标签: jpa jpa-2.0 eclipselink

我想在我的实体中使@Embedded字段“foo”在JPA 2.0中不可更新

    @Entity
    public class Entity {

      @Id
      @SequenceGenerator(name = "Seq", sequenceName = "SEQ", allocationSize = 10)
      @GeneratedValue(generator = "Seq", strategy = GenerationType.SEQUENCE)
      String id;

      @Embedded
      private FooEmbeddable foo;
    }

    @Embeddable
    public class FooEmbedable{

       String fooString;
       String barString;
    }

如果不是@Embeddable我有另一个实体我可以使用@Column注释的updatable = false属性,但@Embedded中没有这样的属性

我找到了一个示例,即@Column(updatable = false)注释直接用于Embeddable的字段。即。

    @Embeddable
    public class FooEmbedable{
       @Column(updatable=false)
       String fooString;

       @Column(updatable=false)
       String barString;
    }

..但如果我将FooEmbedable用于另一个我希望它可以更新的表会怎样?

我想念一下吗?

谢谢

1 个答案:

答案 0 :(得分:0)

updatable = false更适用于您有多个映射同一列的映射,并且您想将一个映射指定为所有者。

如果您只是不想更新某些内容,那么就不要在应用程序中更改它(或者甚至不为它添加set方法)。