Spring MVCを使用してWebサイトをコーディングしましたが、管理者が管理できるように、バックエンド(つまり、ダッシュボードまたはCMS)をコーディングしたいと思います。
フロントエンド用にすべてのDAOをコーディングしたので、バックエンドで再利用したいと思います(DBテーブルは明らかに同じであるため、フロントエンドとバックエンドは同じ永続コンテキストを共有します)。
私のアイデアは、バックエンドを新しいWebアプリケーションとしてコーディングすることでした。ここで、DAOとドメインオブジェクトはフロントエンドからjarファイルとしてエクスポートされ、バックエンドプロジェクトにインポートされました。永続性はJPAとHibernateによって管理され、すべてのDAOクラスは次のようになります。
@Repository
public class UserDao {
private EntityManager em;
// ... Methods...
@PersistenceContext
void setEntityManager(EntityManager entityManager) {
this.em = entityManager;
}
}
バックエンドWebサイトの永続性構成(つまり、JPA + Hibernate + MySQL)は、フロントエンドの永続性構成とまったく同じです。この構成がJARファイルにインポートされているDAOに注入されることを期待していましたが、これは明らかに発生していません。いずれかのDAOでいずれかのメソッドを使用しようとすると、次のような例外が発生します。
org.hibernate.hql.ast.QuerySyntaxException:UserJpaがマップされていません[SELECT u FROM UserJpa u WHERE u.alias =:alias AND u.closed = false]
この問題を解決するための解決策はありますか?または、私が達成したいことへのより良いアプローチがありますか(つまり、同じフロントエンドDAOを使用してバックエンドをコーディングします)?
どうもありがとうございます!