2013-03-05 60 views
1

我想使@Embedded領域的「富」在我的實體是不可更新在JPA 2.0做一個嵌入式領域是不可更新在JPA

@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會發生什麼還另一張表,我想它是可更新?

我是否錯過了什麼?

謝謝

回答

0

更新=假的則多爲當你有映射同一列中的多個映射,要指定一個作爲所有者。

如果你只是不想更新的東西,那麼就不要在應用程序中改變它(甚至沒有爲它添加set方法)。