Спящий режим не использует схему и имя каталога при генерации идентификатора с приращением стратегии

Я использую стратегию приращения гибернации для создания своих идентификаторов на своих объектах.

@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: выберите max(hdr_id) из PORDER.PUB.PO_HEADER, что вызывает следующую ошибку: Указанная группа неоднозначна, повторите запрос, указав полное имя группы.

Когда я создаю запрос вручную с помощью entityManager.createQuery(), hibernate использует полное имя

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

и это работает нормально. Итак, как мне заставить Hibernate использовать полное имя в автогенерации идентификатора?

Кстати. Я использую Hibernate 3.2 и Seam 2.2, работающие на JBoss 4.2.3.

С Уважением

Иммо


person Ben    schedule 01.04.2010    source источник
comment
Это также происходит при использовании xml для подключения ваших таблиц. Это должно быть баг...   -  person markthegrea    schedule 03.05.2011


Ответы (1)


Я думаю, что Hibernate должен учитывать атрибуты catalog и schema атрибута @Table при использовании стратегии increment. Это может быть ошибка, и я не смог найти ничего похожего в Jira аннотаций Hibernate. Я бы поднял вопрос.

Обновление: На самом деле, я только что заметил, что JPA 2.0 представил новый schema и catalog в аннотации @SequenceGenerator. Таким образом, я не уверен, чего ожидать от поставщика JPA 1.0 (и мое первоначальное предположение о том, что поставщик JPA должен использовать информацию из аннотации @Table, может быть неверным), спецификация неясна по этому поводу (или я не мог найти информацию).

person Pascal Thivent    schedule 01.04.2010