私はLiferay 6.2 GA5 Community Editionを使用しています。Liferayエラーorg.hibernate.MappingException:不明なエンティティ:com.mycompany.myapp.model.MyModel
通常、私のservice.xml
にエンティティを作成し、Service Builderを実行してすべてのクラスファイルを生成しました。私はMyModelモデルでCRUD操作を試してみて、常に成功の結果を得ました。
私はレコードの出力リスト、レコードがMyModelを表すストアドプロシージャを持っています。 そして、私はこのようなストアドプロシージャことを呼び出そう:
、私は.addEntity("MyModel", MyModel.class)
を置くので、それが起こったの知っている
SessionFactory sessionFactory = (SessionFactory) PortalBeanLocatorUtil.locate("liferaySessionFactory");
Session session = null;
try {
session = sessionFactory.openSession();
SQLQuery query = session.createSQLQuery("{ CALL dbo.USP_GET_CHILD(:abc) }");
query.addEntity("MyModel", MyModel.class).setString("abc", "aaa");
List<MyModel> list = (List<MyModel>) query.list();
_log.info("size: " + list.size());
for (MyModel o : list) {
_log.info("result: " + o.getFullName());
}
} catch (Exception e) {
_log.error(e.getMessage(), e);
}
上記のコードから、私はラインquery.list()
でエラーorg.hibernate.MappingException: Unknown entity: com.mandiri.ipsplus.model.MyModel
を取得するが、私の場合私がいつもHibernateのデフォルトモデルをMyModelにキャストしようとしていたので、がfor (MyModel o : list)
になることはありません。
この種の例外を検索した後、私は@Entity
注釈をMyModelに入れなければならないと言っているHibernate固有のトピックでいくつかの記事を手に入れました。しかし、Liferayでは、モデルは常にservice.xml
から生成されます。
この問題を解決するにはどうすればよいですか? service.xml
に属性がありますか、これを解決できるXMLファイルの設定はありますか?
ありがとうございます。私は '.addEntity()'メソッドを削除して、 'query.list()'の結果に適切なキャストを行いました。 – danisupr4