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 にはそのような属性はありません

Embeddable のフィールドで @Column(updatable=false) アノテーションが直接使用された例を見つけました。すなわち

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

       @Column(updatable=false)
       String barString;
    }

..しかし、更新可能にしたい別のテーブルにも FooEmbedable を使用するとどうなりますか?

私は何かが恋しいですか?

ありがとうございました

4

1 に答える 1

0

updateable=false は、同じ列をマップする複数のマッピングがあり、そのうちの 1 つを所有者として指定したい場合に適しています。

何かを更新したくない場合は、アプリケーションで変更しないでください (または set メソッドを追加しないでください)。

于 2013-03-05T15:59:36.083 に答える