我目前正在研究基於WebSphere Application Server 7和DB2 Spatial Extender的應用程序,並且希望將JPA用於數據訪問層。將JPA映射到DB2 Spatial
我已經建立了一個非常簡單的表在我的數據庫用於測試目的:
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實體字段的建議?
非常感謝提前。
我做了,但它似乎不符合我的需要。實際上,字段轉換是由java方法執行的,而在我的情況下,轉換隻能由特定的DB2Spatial SQL函數(db2gse.ST_AsText和db2gse.ST_PointFromText) –