我使用 Spring MVC 编写了一个网站,现在我想编写它的后端(即仪表板或 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;
}
}
后端网站的持久化配置(即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 对后端进行编码)?
非常感谢!