gpt4 book ai didi

java - 在另一个 Web 应用程序中重用 DAO

转载 作者:行者123 更新时间:2023-11-29 05:59:03 26 4
gpt4 key购买 nike

我使用 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)与前端完全一样。我期待这个配置被注入(inject)到 JAR 文件中导入的 DAO 中,但这显然没有发生。每次我尝试使用任何 DAO 中的任何方法时,我都会遇到类似于以下内容的异常:

org.hibernate.hql.ast.QuerySyntaxException: UserJpa is not mapped [SELECT u FROM UserJpa u WHERE u.alias = :alias AND u.closed = false]

有没有办法解决这个问题?或者是否有更好的方法来实现我想要实现的目标(即使用相同的前端 DAO 编写后端代码)?

非常感谢!

最佳答案

我想知道为什么您不能将两个 UI 作为单个应用程序部署,并为用户和管理员提供基于角色的访问权限。由于您已经在使用 Spring,因此 Spring Security 将是一个自然的选择,可以按角色限制对管理页面的访问。为什么要重写后端?

关于java - 在另一个 Web 应用程序中重用 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10870476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com