私はinformixデータベースを使用していますが、私は2つのテーブルを持っています。インスタンスと連絡先。連絡先表には次のフィールドがあります。 contact_id、fnameおよびlname。インスタンステーブルには、instance_id、name、およびcontact_idsの各フィールドがあります(contact_idsはinformixで設定された連絡先IDの集合[email protected]です)。 データの永続化のためにhibernateを使用します。私は次のエラーを取得するインスタンスエンティティをロードするとhibernateを使用してデータベースからプリミティブ型のセットを取得する
@Entity
public class Contact{
@Id
private int contact_id;
private String fname;
private String lname;
....
setters and getters
}
:私のインスタンスのクラスのコードは次のようになります。
@Entity
public class Instance{
@Id
private int instance_id;
private String name;
@Lob
private Set<Integer> contact_ids
....
setters and getters
}
Contactクラス
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)
私は単純にしたいですセットを取得します。
ありがとうございました。最初のオプションを試しましたが、次のようなエラーがありました: –
最初のオプションを試しましたが、次のようなエラーがありました。原因:java.sql.SQLException:指定されたテーブル(contact_ids)がデータベースにありません。 インスタンステーブルと連絡先テーブルの間に直接の関係はありません。既存の唯一の関係は、インスタンス表に連絡先IDの集合があることです。連絡先表にはインスタンスIDはありません。私は既存のデータベースに取り組んでおり、テーブル構造を変更する必要はありません。 contact_idsフィールドはコレクションなので、日付や文字列を取得するのと同じように関連付けを作成せずにコレクションを取得する方法があるので、私は考えていました。 –
ええと、私はデータベース構造が修正されたことに気がつかず、あなたはそれを変更したくありませんでした。この場合、どちらの解決法もすぐには機能しません。 –