有可能oracle表有一個複合主鍵oracle sequenceid + createtimestamp,但@Entity類我們只有@id(sequenceid)主鍵?我們將添加時間戳用於表格分區的目的,後者用於清除。在存儲實體時,我們將始終添加時間戳值。從數據的角度來看,id本身就是這種情況下記錄的主要關鍵。我可以使用主鍵創建實體嗎?JPA2 PrimaryKey與Oracle主鍵
0
A
回答
0
在這種情況下,您必須在@ Entity類中創建複合主鍵。你可以按照下面的例子
@Entity
@Table(name="RELEASE_PERSON")
@IdClass(ReleasePersonPK.class)
public class ReleasePerson implements Serializable {
@Column(name="ORDER_NO", nullable=false, precision=2)
private Integer orderNo;
@Id
@Column(name="RELEASE_ID", insertable=false,updatable=false)
private long releaseId;
@Id
@Column(name="PERSON_ID", insertable=false,updatable=false)
private long personId;
@ManyToOne
@JoinColumn(name = "PERSON_ID", referencedColumnName = "PERSON_ID")
private Person person;
@ManyToOne
@JoinColumn(name = "RELEASE_ID", referencedColumnName = "ID")
private Release release;
和身份證類將看起來像下面
@Embeddable
public class ReleasePersonPK implements Serializable {
/**
*
*/
private static final long serialVersionUID = -6286499269052596345L;
private Person person;
private Release release;
在我ReleasePersone表例子中,我們將有複合主鍵從rRelease(ID)和人(PERSON_ID )。
讓我知道你是否需要別的東西。
+0
Thankyou。我的問題更多地是關於我們是否可以在oracle上使用複合鍵,並在jpa @Entity類上使用非複合鍵。 – 2013-03-08 15:16:13
0
答案是肯定的。正如你所說的那樣,id在表中是唯一的,那麼只需將sequenceId作爲PK放入實體即可。如果您不使用hibernate創建表或更新表的列,則它不關心數據庫中的實際內容。
相關問題
- 1. Oracle外鍵或主鍵
- 2. Oracle APEX 4.2主鍵?
- 3. MVC3/Razor添加控制器「Get-PrimaryKey」未能找到主鍵
- 4. 主鍵與鍵
- 5. GroceryCrud與SQL Server(primarykey問題)
- 6. JPA 2:如何在JPA2中聲明@ElementCollection表中的主鍵列
- 7. 在oracle中更新主鍵
- 8. 在Oracle中更改主鍵
- 9. 的Oracle SQL可選主鍵
- 10. Oracle SQL主鍵卡住了
- 11. Oracle複合主鍵/外鍵問題
- 12. Oracle Sql:外鍵也是主鍵語法
- 13. 主鍵與RRN
- 14. 與主鍵
- 15. 與主鍵
- 16. 與JPA2的多個聯接
- 17. 我如何在JPA2
- 18. ODBC與Oracle觸發鍵列
- 19. 約束與主鍵
- 20. 與主文本鍵
- 21. 的Android - 與主鍵
- 22. 與主鍵混淆
- 23. 與主鍵不同
- 24. Django的REST - 創建對象與PrimaryKey的
- 25. FluentMigrator NonClustered PrimaryKey SqlServer?
- 26. Google Bigtable-primarykey
- 27. 有關的PrimaryKey
- 28. oracle自動增加到主鍵
- 29. Oracle APEX - 數據建模和主鍵
- 30. 如何在Oracle中獲取主鍵列?
「PriamryKey」?你確定你拼寫正確嗎? – 2013-03-07 19:53:20
PrimaryKey我的意思是:-) – 2013-03-07 19:59:05