1

我想让我的实体中的@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 的字段。IE

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

       @Column(updatable=false)
       String barString;
    }

..但是如果我将 FooEmbedable 用于另一个我希望它可以更新的表,会发生什么?

我想念什么吗?

谢谢

4

1 回答 1

0

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

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

于 2013-03-05T15:59:36.083 回答