2010-04-01 22 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注释的信息可能是错误的),但规范并不清楚(或者我不能找到信息)。