- html - 我的下拉菜单的内容关闭得太快
- c# - 使用 Html Agility Pack 从网页中的表中获取值而不使用 "SelectNode'
- html - 内容容器下的 CSS 下拉菜单
- html - 如何停止嵌套列表重叠父列表?
我们正在使用 Spring、Hibernate/JPA 和 Maven 开发一个 Web 应用程序。我们有几个定义不同实体的模块,所有模块都基于定义数据访问的核心模块和部署为 tomcat 上的 war 的 Web View 项目。
现在我在 persistence.xml 放置方面遇到了一些麻烦。实际上我根本不想使用它,因为我正在所有 java/test/resources 文件夹以及实际的 web 中存在的一些 datasource.xml 文件中进行所有 hibernate (即 jpa)设置项目。然而, hibernate 似乎无论如何都需要它,因为我不断收到
...
Caused by: java.lang.IllegalArgumentException: Not an entity: class ....model.Customer
at org.hibernate.ejb.metamodel.MetamodelImpl.entity(MetamodelImpl.java:160)
at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:58)
at org.springframework.data.jpa.repository.support.JpaPersistableEntityInformation.<init>(JpaPersistableEntityInformation.java:44)
at org.springframework.data.jpa.repository.utils.JpaClassUtils.getMetadata(JpaClassUtils.java:100)
at ...JpaProvider.init(JpaProvider.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:340)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:293)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130)
... 58 more
适用于我的所有模型。(例如:)
@Entity
@Table(name="customer")
public class Customer extends AbstractPersistable<Long> {
所以我的包的设置如下:
src/main/java - contains the model classes
src/main/resources - contains application context
src/test/java - contains unit tests
src/test/resources - contains test context and datasource (JPA setup)
如果我将 META-INF/persistence.xml 放在 main/resources 中,一切都很好,这意味着 Maven 将构建项目,运行测试,其中 hibernate 将自动创建表。然而,由于我有许多模块项目在我的网络应用程序中组合在一起,我将得到一个
IllegalStateException: No single default persistence unit defined
我的 Web 项目设置是
src/main/resources/META-INF - containing the persistence.xml being deployed to WEB-INF/classes
src/main/webapp/WEB-INF - containing web.xml, faces-config, application-context, ... being deployed to /
src/main/java - containing controller classes being deployed to WEB-INF/classes
所以这几乎是提到的第一个设置 here应该没问题。
如果在我的“模型 jar ”中,我将 META-INF/persistence.xml 放入测试/资源中,我会得到上面提到的“不是实体”异常。
那么...如果我想在我的“模块”jar 中定义(和测试)实体对象并在我的“ View ” war 中使用它们,我该如何设置我的项目?
非常感谢!
编辑:找出原因
IllegalStateException: No single default persistence unit defined
看来,我需要在模型 jar 中将所有持久性单元命名为相同的名称。然而现在,我的网络应用程序提示一个 jar ,而另一个 jar 很好,而两者都有完全相同的设置。我只是无法摆脱“不是实体”异常(exception)。
编辑2:
奇怪的是,我现在有一个项目将构建和单元测试自己的模型,但在 Web 容器内使用时会提示这些模型不是实体,而具有 100% 完全相同设置的第二个项目将可以工作正好。让我觉得我的网络应用程序中有什么地方出了问题,但我就是看不出是什么。
有人遇到过这种情况吗?我在 Google 上找不到任何适合我的设置或提出适用解决方案的有用内容。
编辑3:
似乎是maven集成问题。在我的 Webapp pom 中,我有以下设置:
<dependency>
<groupId>...</groupId>
<artifactId>view-jsf</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>...</groupId>
<artifactId>prototype</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>...</groupId>
<artifactId>security</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
view-jsf 提供了 jsf 特定的东西,在这里并不重要。
原型(prototype)包含一些原型(prototype)模型(实体)定义,包括管理器和提供者。
security 包含安全模型定义,如帐户、角色等,以及仍待实现的 spring-security 特定内容;)
原型(prototype)和安全性都引用了核心项目,这些项目又定义了数据访问以及更多依赖项,例如 spring。
现在有趣的部分是:如果在我的 webapp pom 中我将安全性移到原型(prototype)之前,原型(prototype)实体将正常加载,并且安全实体将抛出 IllegalArgumentException 并说“不是实体”。如果我将原型(prototype)放在安全性之前,原型(prototype)实体将抛出异常。
因此,maven 似乎覆盖了两个项目中相同的内容,因此只有第二个项目能够成功加载。将进一步调查...
编辑4:进一步调查表明,问题在于一个持久性单元内有多个定义 JPA 实体的 jar (example) 。将针对该问题提出一个新问题,并在此处发布链接,因为该线程变得有点长且令人困惑。
最佳答案
将问题压缩成单独的帖子here
当两个 jars 在一个 persistence-unit
中定义了一个 persistence.xml
实体(显式或隐式),然后加载到一个 war 中时,就会导致异常(在我的例子中是由 Maven 提供的)。
解决方案似乎是在 Web 应用程序中只有一个 persistence.xml,并列出其中的所有实体(jar 单元测试除外,它们的资源中必须有一个 persistence.xml)。
仍然想知道是否有更动态的解决方案......
关于hibernate - 非法参数异常 : Not an entity - distributed model definitions in hibernate/jpa and Maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432070/
我对 mongoosejs 中模型的使用感到有些困惑。 可以通过这些方式使用 mongoose 创建模型 使用 Mongoose var mongoose = require('mongoose');
我正在看 from django.db import models class Publisher(models.Model): name = models.CharField(max_len
我有自己的 html 帮助器扩展,我用这种方式 model.Reason_ID, Register.PurchaseReason) %> 这样声明的。 public static MvcHtmlS
假设模型原本是存储在CPU上的,然后我想把它移到GPU0上,那么我可以这样做: device = torch.device('cuda:0') model = model.to(device) # o
我过去读过一些关于模型的 MVC 建议,指出不应为域和 View 重用相同的模型对象;但我找不到任何人愿意讨论为什么这很糟糕。 我认为创建两个单独的模型 - 一个用于域,一个用于 View - 然后在
我正在使用pytorch构建一个像VGG16这样的简单模型,并且我已经重载了函数forward在我的模型中。 我发现每个人都倾向于使用 model(input)得到输出而不是 model.forwar
tf.keras API 中的 models 是否多余?对于某些情况,即使不使用 models,代码也能正常运行。 keras.models.sequential 和 keras.sequential
当我尝试使用 docker 镜像运行 docker 容器时遇到问题:tensorflow/serving。 我运行命令: docker run --name=tf_serving -it tensor
我有一个模型,我用管道注册了它: register_step = PythonScriptStep(name = "Register Model",
如果 View 需要访问模型中的数据,您是否认为 Controller 应: a)将模型传递给 View b)将模型的数据传递给 View c)都不;这不应该是 Controller 所关心的。让 V
我正在寻找一个可以在模型中定义的字段,该字段本质上是一个列表,因为它将用于存储多个字符串值。显然CharField不能使用。 最佳答案 您正在描述一种多对一的关系。这应该通过一个额外的 Model 进
我最近了解了 Django 中的模型继承。我使用很棒的包 django-model-utils 取得了巨大的成功。我继承自 TimeStampedModel 和 SoftDeletableModel。
我正在使用基于 resnet50 的双输出模型进行项目。一个输出用于回归任务,第二个输出用于分类任务。 我的主要问题是关于模型评估。在训练期间,我在验证集的两个输出上都取得了不错的结果: - 综合损失
我是keras的新手。现在,我将使用我使用 model.fit_generator 训练的模型来预测测试图像组。我可以使用 model.predict 吗?不确定如何使用model.predict_g
在 MVC 应用程序中,我加入了多个表并将其从 Controller 返回到 View,如下所示: | EmployeeID | ControlID | DoorAddress | DoorID |
我在使用 sails-cassandra 连接系统的 Sails 中有一个 Data 模型。数据。 Data.count({...}).exec() 返回 1,但 Data.find({...}).e
我正在使用 PrimeFaces dataTable 开发一个 jsf 页面来显示用户列表。用户存储在 Model.User 类的对象中。
我正在关注https://www.tensorflow.org/tutorials/keras/basic_classification解决 Kaggle 挑战。 但是,我不明白应该将什么样的数据输入
我是这个领域的新手。那么,你们能帮忙如何为 CNN 创建 .config 文件吗? 传递有关如何执行此操作的文档或教程将对我有很大帮助。谢谢大家。 最佳答案 这个问题对我来说没有多大意义,因为 .co
我是“物理系统建模”主题的新手。我阅读了一些基础文献,并在 Modelica 和 Simulink/Simscape 中做了一些教程。我想问你,如果我对以下内容理解正确: 符号操作是将微分代数方程组(
我是一名优秀的程序员,十分优秀!