2015-11-08 52 views
0

請看我的應用程序configuration。正如答案中所標記的,由於EclipseLink的錯誤,我已將目標數據庫更改爲「數據庫」。我在我的實體ID上有@GeneratedValue(strategy = GenerationType.IDENTITY)。在數據庫中,此列是串行類型。當我嘗試將新對象保存到數據庫時,我得到以下日誌:EclipseLink忽略id生成策略 - PostgreSQL

2015-11-08T23:37:20.748+0100|Finer: client acquired: 133317409 2015-11-08T23:37:20.760+0100|Finer: TX binding to tx mgr, status=MARKED_ROLLBACK 2015-11-08T23:37:20.761+0100|Finer: acquire unit of work: 1890544759 2015-11-08T23:37:20.762+0100|Finest: persist() operation called on: [email protected] 2015-11-08T23:37:20.763+0100|Finer: TX beginTransaction, status=MARKED_ROLLBACK 2015-11-08T23:37:20.764+0100|Finest: Execute query DataModifyQuery(name="SEQ_GEN_IDENTITY" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + #PREALLOC_SIZE WHERE SEQ_NAME = #SEQ_NAME") 2015-11-08T23:37:20.766+0100|Finest: Connection acquired from connection pool [default]. 2015-11-08T23:37:20.767+0100|Finest: reconnecting to external connection pool 2015-11-08T23:37:20.771+0100|Fine: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ? bind => [1, SEQ_GEN_IDENTITY] 2015-11-08T23:37:20.883+0100|Warning: Local Exception Stack: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150605-31e8258): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: org.postgresql.util.PSQLException: ERROR: relation "sequence" does not exist Position: 8 Error Code: 0 Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ? bind => [1, SEQ_GEN_IDENTITY]

很明顯,某些錯誤。你有什麼主意嗎?

回答

0

您對上一個問題的解決方案不是解決方案,應該重新審視。使用'數據庫'通用平臺意味着你不能利用PostgreSQL的數據庫特定功能,例如身份,並且默認爲內部未創建的序列。

除非你願意創建一個序列,否則這個工作的唯一方法就是設置。