Hibernate不使用策略增量的id生成中的模式和目录名称

时间:2010-04-01 10:26:27

标签: hibernate orm java-ee jboss seam

我正在使用hibernate增量策略在我的实体上创建我的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自动生成中使用完全限定名?

顺便说一下。我正在使用在JBoss 4.2.3上运行的Hibernate 3.2和Seam 2.2

此致

IMMO

1 个答案:

答案 0 :(得分:0)

我认为在使用catalog策略时,Hibernate应该尊重schema的{​​{1}}和@Table属性。这可能是一个错误,我在Hibernate Annotations的Jira中找不到任何内容。我会提出一个问题。

更新:实际上,我刚刚注意到JPA 2.0在schema注释中引入了新的catalog@SequenceGenerator属性。因此,我不确定从JPA 1.0提供程序可以期待什么(我最初假设JPA提供程序应该使用increment注释中的信息可能是错误的),规范并不清楚(或者我找不到这些信息。)