Я использую базу данных informix, и у меня есть две таблицы; экземпляр и контакт. Таблица контактов имеет следующие поля; contact_id, fname и lname. Таблица экземпляров имеет следующие поля: instance_id, name и contact_ids (contact_ids - коллекция набора идентификационных данных идентификаторов контактов, [email protected]). Я использую hibernate для сохранения данных. Код для моего экземпляра класса выглядит следующим образом:Извлечение набора примитивных типов из базы данных с использованием hibernate
@Entity
public class Instance{
@Id
private int instance_id;
private String name;
@Lob
private Set<Integer> contact_ids
....
setters and getters
}
Контакт Класс:
@Entity
public class Contact{
@Id
private int contact_id;
private String fname;
private String lname;
....
setters and getters
}
Когда я загрузить экземпляр сущности, я получаю следующее сообщение об ошибке:
20:32:18,527 ERROR [jsp:154] java.sql.SQLException: **Can't convert to: binary stream**
at com.informix.util.IfxErrMsg.getSQLMinorException(IfxErrMsg.java:575)
at com.informix.jdbc.IfxObject.toBlob(IfxObject.java:647)
at com.informix.jdbc.IfxResultSet.getBlob(IfxResultSet.java:3338)
at com.informix.jdbc.IfxResultSet.getBlob(IfxResultSet.java:3437)
Я просто хочу получить набор.
Благодарим за решение. Я попробовал первый вариант, но имел ошибку следующим образом: –
Я пробовал первый вариант, но имел следующую ошибку: Caused by: java.sql.SQLException: Указанная таблица (contact_ids) отсутствует в базе данных. Нет прямой связи между экземпляром и таблицами контактов. Единственное существующее отношение состоит в том, что в таблице экземпляров имеется коллекция идентификаторов контактов. В таблице контактов нет идентификатора экземпляра. Я работаю над существующей базой данных, и я не хочу менять структуру таблицы. Я думал, так как поле contact_ids представляет собой коллекцию, есть способ получить коллекцию, не создавая никакой ассоциации, как получение даты или строки. –
Ухх, я не понимал, что структура базы данных исправлена, и вы не хотели ее менять. В этом случае ни одно решение не будет немедленно работать. –