2010-04-01 23 views
1

我正在使用休眠增量策略來創建我的實體上我的ID。休眠不使用架構和目錄名稱的ID生成與戰略增量

@GenericGenerator(name="increment-strategy", strategy="increment") 
@Id @GeneratedValue(generator="increment=strategy") 
@Column(name="HDR_ID", unique=true, nullable=false) 
public int getHdrId(){ 
    return this.hdrId; 
} 

實體具有下表註釋

@Table(name = "PORDER.PUB.PO_HEADER", schema = "UVOSi", catalog = "VIRT_UVOS") 

請注意我有兩個數據源。

當我嘗試插入一個實體的Hibernate創建下面的SQL語句:從PORDER.PUB.PO_HEADER 選擇MAX(hdr_id),這將導致以下錯誤:組指定不明確,通過完全限定組名稱重新提交查詢。

當我手動創建一個查詢與entityManager.createQuery() Hibernate使用完全合格的名稱

select XXX from VIRT_UVOS.UVOSi.PORDER.PUB.PO_HEADER 

和工作正常。 那麼如何讓Hibernate在Id自動生成中使用完全限定的名稱呢?

Btw。我使用的Hibernate 3.2和Seam 2.2在JBoss 4.2.3

問候

運行IMMO

+0

這也發生在使用xml來連接你的表格。這一定是一個錯誤... – markthegrea 2011-05-03 14:00:57

回答

0

我認爲使用increment策略時,Hibernate對應該履行@Tablecatalogschema屬性。這可能是一個錯誤,我在Hibernate Annotations的Jira找不到任何接近的東西。我會提出一個問題。

更新:其實,我只注意到JPA 2.0中引入的@SequenceGenerator註釋新schemacatalog屬性。因此,我不確定期望從JPA 1.0提供商得到什麼(以及我最初的假設,即JPA提供商應該使用來自@Table註釋的信息可能是錯誤的),但規範並不清楚(或者我不能找到信息)。