在非网络项目中仅将 tapestry-ioc 与 tapestry-ioc 一起使用
Using tapestry-jpa just with tapestry-ioc in non-web project
这是一个非常基本的问题,我有点抱歉,但我似乎无法获得一个简单的基于 Tapestry-IOC 的应用程序来使用内置的 Tapestry JPA 模块。
应用程序不一定是 Web 项目,因此依赖项只是用于 JPA 集成的 tapestry-ioc 和 tapestry-jpa。我之前使用过 hibernate-entitymanager,一切正常。但我想我可能更愿意使用 Tapestry 的官方 JPA 支持。
所以我所做的就是获取上述依赖项(在 Tapestry 版本 5.3.7 中)并编写测试的开头。
这个开头是这样的
Registry registry = RegistryBuilder.buildAndStartupRegistry(MyModule.class);
EntityManager em = registry.getService(EntityManager.class);
就是这样。因为一旦我尝试这样做,我就会收到错误消息,即没有服务会实现 EntityManager
接口。
所以我添加了 Tapestry JPA 模块:
Registry registry = RegistryBuilder.buildAndStartupRegistry(MyModule.class, JpaModule.class);
但我又收到一个错误,提示 JpaModule
想要贡献给不存在的 ApplicationStatePersistenceStrategySource
服务。这个服务好像是在TapestryModule
里定义的,所以我做了
Registry registry = RegistryBuilder.buildAndStartupRegistry(MyModule.class, JpaModule.class, TapestryModule.class);
但是由于缺少 servlet API,这会导致错误。所以现在我到了必须为 Tapestry 定义 Web 环境的地步。但我不想要这个,我只是想使用 JPA 集成。
这可能吗?如果是这样,我该怎么做?遵循 http://tapestry.apache.org/integrating-with-jpa.html 的文档在这方面没有帮助。
非常感谢您的阅读,感谢任何提示!
快速回答——我可能错了——但我认为 Tapestry-jpa 旨在将 JPA 与 Tapestry-core(网络框架)结合使用。我认为在您的情况下,普通 JPA 不会有任何好处。
这是一个非常基本的问题,我有点抱歉,但我似乎无法获得一个简单的基于 Tapestry-IOC 的应用程序来使用内置的 Tapestry JPA 模块。
应用程序不一定是 Web 项目,因此依赖项只是用于 JPA 集成的 tapestry-ioc 和 tapestry-jpa。我之前使用过 hibernate-entitymanager,一切正常。但我想我可能更愿意使用 Tapestry 的官方 JPA 支持。
所以我所做的就是获取上述依赖项(在 Tapestry 版本 5.3.7 中)并编写测试的开头。 这个开头是这样的
Registry registry = RegistryBuilder.buildAndStartupRegistry(MyModule.class);
EntityManager em = registry.getService(EntityManager.class);
就是这样。因为一旦我尝试这样做,我就会收到错误消息,即没有服务会实现 EntityManager
接口。
所以我添加了 Tapestry JPA 模块:
Registry registry = RegistryBuilder.buildAndStartupRegistry(MyModule.class, JpaModule.class);
但我又收到一个错误,提示 JpaModule
想要贡献给不存在的 ApplicationStatePersistenceStrategySource
服务。这个服务好像是在TapestryModule
里定义的,所以我做了
Registry registry = RegistryBuilder.buildAndStartupRegistry(MyModule.class, JpaModule.class, TapestryModule.class);
但是由于缺少 servlet API,这会导致错误。所以现在我到了必须为 Tapestry 定义 Web 环境的地步。但我不想要这个,我只是想使用 JPA 集成。
这可能吗?如果是这样,我该怎么做?遵循 http://tapestry.apache.org/integrating-with-jpa.html 的文档在这方面没有帮助。
非常感谢您的阅读,感谢任何提示!
快速回答——我可能错了——但我认为 Tapestry-jpa 旨在将 JPA 与 Tapestry-core(网络框架)结合使用。我认为在您的情况下,普通 JPA 不会有任何好处。