У меня есть таблица PostgreSQL, в которой у меня есть столбец inv_seq
объявленный как serial
.
У меня есть Быть в спящем режиме класс компонента для отображения таблицы. Все другие столбцы прочитаны правильно кроме этого столбца. Вот объявление в Быть в спящем режиме классе компонента:
....
....
@GeneratedValue(strategy=javax.persistence.GenerationType.AUTO)
@Column(name = "inv_seq")
public Integer getInvoiceSeq() {
return invoiceSeq;
}
public void setInvoiceSeq(Integer invoiceSeq) {
this.invoiceSeq = invoiceSeq;
}
....
....
Объявление корректно?
Я могу видеть порядковые номера, сгенерированные столбцом в базе данных, но я не могу получить доступ к ним в классе Java.
Помогите.
В зависимости от вашей ситуации это может не работать. Открыта ошибка против Hibernate, которая документирует это поведение.
http://opensource.atlassian.com/projects/ibernate/browjects/hhh-4159
Если вы открыты для использования файла сопоставления вместо аннотаций, я смог воссоздать проблему (NULL » столбцы, которые не являются частью основного ключа). Использование «сгенерированного» атрибута элемента свойств вызывает Hibernate для перечетия строки после вставки, чтобы забрать сгенерированный значок столбца:
<class name="Ticket" table="ticket_t">
<id name="id" column="ticket_id">
<generator class="identity"/>
</id>
<property name="customerName" column="customer_name"/>
<property name="sequence" column="sequence" generated="always"/>
</class>