日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openjpa_以编程方式向OpenJPA注册实体类型

發布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openjpa_以编程方式向OpenJPA注册实体类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

openjpa

我剛剛開始為Isis開發 OpenJPA對象庫 。 在一般情況下,可以在persistence.xml文件中注冊實體類型。 但是,Isis是一個框架,可以構建自己的元模型,并且可以自行確定哪些類構成實體。 因此,我不想強??迫開發人員重復自己的工作 ,所以難題就變成了如何在Isis代碼中以編程方式注冊實體類型。

看起來很簡單,如果有點丑陋的話。 OpenJPA允許以編程方式定義某些關鍵組件的實現; 這些在屬性映射中指定,然后傳遞給javax.persistence.Persistence.createEntityManager(null,props) 。 但它也支持可用于通過setter注入初始化那些組件的語法。

在我的情況下,感興趣的組件是openjpa.MetaDataFactory 。 有一次,我以為自己會寫自己的實現。 但事實證明,標準實現滿足了我的需要,因為它允許通過其setTypes(List <String>)增幅器注入類型。 字符串列表以;分隔列表形式傳遞到該屬性中。

所以,這就是我最終得到的結果:

final Map<String, String> props = Maps.newHashMap();final String typeList = entityTypeList(); props.put("openjpa.MetaDataFactory","org.apache.openjpa.persistence.jdbc.PersistenceMappingFactory(types=" + typeList + ")");// ... then add in regular properties such as // openjpa.ConnectionURL, openjpa.ConnectionDriverName etc...entityManagerFactory = Persistence.createEntityManagerFactory(null, props);

在我的情況下, entityTypeList()看起來像這樣:

private String entityTypeList() {final StringBuilder buf = new StringBuilder();// loop thru Isis' metamodel looking for types that have been annotated using @Entityfinal Collection<ObjectSpecification> allSpecifications = getSpecificationLoader().allSpecifications();for(ObjectSpecification objSpec: allSpecifications) {if(objSpec.containsFacet(JpaEntityFacet.class)) {final String fqcn = objSpec.getFullIdentifier();buf.append(fqcn).append(";");}}final String typeList = buf.toString();return typeList; }

歡迎評論,一如既往

參考: Dan Haywood博客博客中的JCG合作伙伴 Dan Haywood以編程方式在OpenJPA中注冊實體類型 。


翻譯自: https://www.javacodegeeks.com/2012/06/registering-entity-types-with-openjpa.html

openjpa

總結

以上是生活随笔為你收集整理的openjpa_以编程方式向OpenJPA注册实体类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。