2012-09-17 27 views
12

我有一個導入到Eclipse中的maven enabled項目。在Eclipse中,我得到一個錯誤的系統UUID「沒有名爲發生器‘’持久化單元定義」以下線的系統UUID部分:Eclipse:在持久化單元中沒有定義名爲「system-uuid」的發生器

@Id @GeneratedValue(generator = "system-uuid") 
@GenericGenerator(name = "system-uuid", strategy = "uuid") 
@Column(length = 36) 
public String getId() { 
    return id; 
} 

該項目通過命令行建立正確。什麼導致Eclipse產生這個錯誤,我該如何解決它?

持久性文件看起來像這樣..

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
    version="1.0"> 
    <persistence-unit name="xxxx"/> 
</persistence> 

回答

33

您可以打開錯誤停用/減弱下,首選項 - > Java持久性 - > JPA - >下的「查詢和發電機」錯誤/警告通過改變錯誤'生成器未在持久單元中定義'爲警告。

這看起來像Eclipse中Dali的Hibernate Tools擴展中的一個錯誤。您可以將其報告給Hibernate Tools,或者這可以在更新的版本中修復。

+1

但如果開發商把這個錯誤進行檢查,我會停下來想一想,我們應該做的事的persistence.xml,你不也這樣覺得? :S –

+4

這個答案似乎很古老。我剛剛下載了Eclipse luna,問題仍然存在。我不能相信這麼長時間的bug會持續下去。這對Dali來說真的是一個錯誤嗎? –

+0

這對我有用。但是,我必須同意@IgnacioRubio。這會抑制錯誤並讓我們繼續......但是,爲什麼錯誤首先被拋出?根據我的研究,我還沒有找到解決方案。 –

1

更新版本的Eclipse JPA支持似乎取決於註釋的順序。嘗試使用em後,您正在定義生成器。

這將工作:

@Id 
@GenericGenerator(name = "system-uuid", strategy = "uuid") 
@GeneratedValue(generator = "system-uuid") 
@Column(length = 36) 
public String getId() { 
    return id; 
} 

但是註解的在Java中的順序必須沒有意義。所以凱倫是對的,這似乎是一個錯誤。

+1

我提交了一個新的錯誤報告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=474298 – roehrijn

+5

對我來說不能以任何順序工作 – yair

+0

對於我來說,沒有任何順序的工作。和項目>清潔......(下面建議)沒有幫助任何順序。我使用Mars.2(4.5.2)。 – mbmast

0

從github導入我的項目後,我幾乎有同樣的錯誤 - 我用我的自定義ID生成器 - 在eclipse中。

錯誤: 沒有名爲「idGenEchantillon」發生器在持久性單元定義

所以我的答案是沒有真正的主要問題,但對於具有相同的錯誤礦可以在這裏看到其他開發人員。

代碼:

@Id 
@GenericGenerator(name = "idGenEchantillon", strategy = "com.labo.model.KeyGenaratorForEchantillon") 
@GeneratedValue(generator ="idGenEchantillon") 
@Column(name = "ID_ECHANTILLON", length = 12) 
private String idEchantillon; 

我使用Maven來管理依賴。

  1. 我已經從我的項目中刪除了JPA方面=>每當我使用Maven更新我的項目時,項目再次使用JPA方面=>錯誤停留。
  2. 我已經禁用Maven的「JPA配置器」選項:窗口>>首選項>> Maven >> Java EE集成,然後取消選擇「JPA CONFIGURATOR」,之後我使用Maven更新我的項目=>錯誤是不見了。
5

Eclipse的月神:這似乎是工作

Project -> Clean 
相關問題