Я использую стратегию приращения гибернации для создания своих идентификаторов на своих объектах.
@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.
С Уважением
Иммо