私は現在、WebSphere Application Server 7 と DB2 Spatial Extender に基づくアプリケーションに取り組んでおり、データ アクセス層に JPA を使用したいと考えています。
テスト目的で、データベースに非常に単純なテーブルを設定しました。
JMTEST (id integer | position db2gse.st_point)
課題は、位置列 (db2gse.st_point) を JPA エンティティのフィールドにマップすることです
これまでに見つけた唯一の実用的な解決策は、Hibernate を JPA 実装として使用して、@ColumnTransformer アノテーションを利用できるようにすることです。
@Entity
@NamedQuery(name = "getAllRecords", query = "SELECT j FROM Jmtest j")
public class Jmtest implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@ColumnTransformer(read="db2gse.ST_AsText(position)",write="db2gse.ST_PointFromText(?,1003)")
private String position;
私は WebSphere 7 を使用しているので、JPA 1.0 と IBM または OpenJPA 実装が付属しています。残念ながら、私はこれらに固執する必要があるのではないかと心配しています (JPA 2.0 を使用する可能性も、別の JPA プロバイダーを使用する可能性もありません)
IBM または OpenJPA 実装で @ColumnTransformer に相当するものを見つけることができませんでした。存在する場合、誰かが私に何を使うべきか説明してもらえますか?
そうでない場合は、IBM/OpenJPA 実装を使用して DB2Spatial 列を JPA エンティティ フィールドにマップする方法についてアドバイスをいただけますか?
よろしくお願いします。