Jakarta ee EclipseLink@OneToMany关系大小JPQL异常
我尝试将我的java ee应用程序部署到GlassFish/EclipseLink,该应用程序在Wild/Hibernate上运行良好,但我遇到了这样的错误:Jakarta ee EclipseLink@OneToMany关系大小JPQL异常,jakarta-ee,jpa,glassfish,wildfly,jboss-arquillian,Jakarta Ee,Jpa,Glassfish,Wildfly,Jboss Arquillian,我尝试将我的java ee应用程序部署到GlassFish/EclipseLink,该应用程序在Wild/Hibernate上运行良好,但我遇到了这样的错误: Problem compiling [DELETE FROM ProviderService ps WHERE :work_station MEMBER OF ps.workStations AND ps.workStations.size = 1]. [81, 101] The state field path 'ps.workStat
Problem compiling [DELETE FROM ProviderService ps WHERE :work_station MEMBER OF ps.workStations AND ps.workStations.size = 1].
[81, 101] The state field path 'ps.workStations.size' cannot be resolved to a valid type.
81, 101] The state field path 'ps.workStations.size' cannot be resolved to a valid type.
有可能让玻璃鱼冬眠吗?如果是这样,我如何在build.gradle中配置这样的东西
我正在使用Wildfly remote/Wildfly embedded的build.gradle条件选择进行Arquillian测试(工作正常),现在添加了Glassfish remote/Glassfish embedded,但在这里我无法编译,存在上述错误。我也收到类似的消息:
ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.
java.lang.IllegalArgumentException: ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.
at org.jboss.arquillian.protocol.servlet.ServletUtil.determineBaseURI
JPQL无效。JPQL是由JPA规范定义的,为了便于移植,您必须坚持正确的语法。在这种情况下,有一个函数“
SIZE
”。应该是
DELETE FROM ProviderService ps WHERE :work_station MEMBER OF ps.workStations AND SIZE(ps.workStations) = 1
“ps.workStations”大概是一个集合?那么这个“大小”字段是什么?如果你的意思是“size”是一个函数,那么这个页面可能会显示“size(ps.workStations)”是它的集合,我想我一直在使用size,因为这是Hibernate中允许的属性?(它可以正常工作)我不认为Hibernate与此相关,它是EclipseLink,JPA规范非常清楚。。。您使用函数“大小(字段)”。。。因此,为什么使用无效的JPQL语法会出现错误。在开发RESTful web服务时,使用Glassfish/EclipseLink/Jersey和WildFly/Hibernate/RestEasy如何?我想在这两种环境中进行测试。。。我一直在WilfFly进行开发,但试图迁移到Glassfish,以便能够在将来使用MVC 1.0 Ozark实现Glassfish呢?这不是这里的问题。。。上面写着“EclipseLink@OneToMany关系大小JPQL异常”。如果您有其他问题,请将其作为单独的问题提出