我對於stackoverflow和JPA都是新手,所以我會盡力解釋這一點。JPA,不希望insertable = false,updatable = false,解決方法?
在一個實體中,我想通過給定int值來設置外鍵,但是我想通過給出一個對象來設置它。這裏有一些代碼可以更好地解釋它。
@Entity
public class Thread implements Serializable {
@ManyToOne
@JoinColumn(name = "accountId", referencedColumnName = "id", nullable = false)
public Account getAccount() {
return account;
}
@Column(name = "accountId")
@Basic
public int getAccountId() {
return accountId;
}
}
我已經嘗試了幾種方法,但上面的代碼是我嘗試實現的最好的例子。我明白,在兩種方法中的任何一種中設置insert = false和update = false,使得這些代碼在編譯和運行時都可以工作。但我希望能夠通過使用Account對象並通過設置實際的int accountId來插入accountId。
原因是因爲有時候,在我的服務器中,我只有accountId,有時候我有Account對象。
我也明白,最好的解決方案可能是在創建線程和設置accountId時使用account.getId()。但是,在我的服務器中使用該對象在邏輯上會更好。
在此先感謝!
請參閱http://stackoverflow.com/questions/16043761/java-hibernate-entity-allow-to-set-related-object-both-by-id-and-object-itself – axtavt
我只是使用對象並忘記使用該ID。如果您試圖超級優化應用程序,請使用會話緩存並嘗試使用'em.getReference()'來防止數據庫命中。 –