小编MrP*_*low的帖子

使用ManyToOne获取org.hibernate.PropertyAccessException的JPA Composite键:无法通过反射设置器设置字段值

我有一个复合键ContractServiceLocationPK做出来的三个ID.( ,,contractId 在嵌入类型长).使用此复合键的类使用注释将这些ID映射到其对象.这是它的样子(删除了setter/getters和不相关的属性):locationIdserviceIdContractServiceLocation@MapsId

合同

@Entity
@Table(name = "Contract")
public class Contract implements Serializable {

    public Contract() {
    }

    @Id
    @GeneratedValue
    private long id;
    @OneToMany(mappedBy = "contract", cascade = CascadeType.ALL, fetch= FetchType.EAGER)
    Collection<ContractServiceLocation> contractServiceLocation;
}
Run Code Online (Sandbox Code Playgroud)

ContractServiceLocationPK

@Embeddable
public class ContractServiceLocationPK implements Serializable {

    private long contractId;
    private long locationId;
    private long serviceId;
}
Run Code Online (Sandbox Code Playgroud)

ContractServiceLocation

@Entity
@Table(name="Contract_Service_Location")
public class ContractServiceLocation implements Serializable {

    @EmbeddedId
    ContractServiceLocationPK id;

    @ManyToOne(cascade = CascadeType.ALL)
    @MapsId("contractId")
    Contract contract;

    @ManyToOne(cascade = CascadeType.ALL) …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa one-to-many many-to-one

10
推荐指数
2
解决办法
6468
查看次数

是否可以拦截 Java 11 HttpClient 请求?

基本上如标题所说。Apache HttpClient 和 Spring RestTemplate 允许定义自定义拦截器,这些拦截器环绕请求/响应并允许额外(全局)修改请求参数、日志记录等......

我在标准 Java 实现中没有看到这样的功能java.net.http.HttpClient(从 Java 11 开始)。我是否遗漏了某些东西,或者没有办法在单个上拦截所有请求/响应HttpClient

java http interceptor java-http-client

9
推荐指数
1
解决办法
1739
查看次数

哪个弹簧视图解析器与angularjs一起玩得很好?

我正在使用angularjs和spring mvc编写一个webapp作为REST服务提供者和一个部分视图提供者(我也使用angular-ui-router,这样我就可以有多个嵌套的部分).我目前对模板语言没有任何用处,因为我计划用角度做所有事情,但是我尝试过的每一个视图解析器都有某种类型的模板语言与angular冲突并且崩溃应用程序和/或填充我的日志有错误.

首先我尝试使用InternalResourceViewResolver,但没有运气,因为它似乎只需要.jsp文件,并且不会显示任何其他内容.

然后我尝试使用Thymeleaf.Thymeleaf遵循XML标准,迫使我重写我的大多数html以遵循xml要求,并且在我完成之后,它在遇到&&ng-show指令内部时死亡.所以也没有运气.

然后我尝试了Velocity.到目前为止,我对速度感到非常幸运.它很好地提供了html文件,在遇到解析错误时不会停止,并允许我以与InternalResourceViewResolver相同的方式提供部分视图.然而,在遇到以$Velocity为前缀的角度变量时,会尝试将它们解析为VTL变量,并使用类似的消息填充我的日志

velocity - Null reference [template 'clients/createOrEdit.html', line 1, column 65] : $invalid cannot be resolved.

一切都在继续,但我不是那个只留下错误的人,而且我发现没有办法禁用VTL.

这是我目前使用视图解析器的经验.

我也有一个想法将.html文件视为静态资源(它们有点像角度之前它的魔力)使用mvc:resources但没有任何视图解析器我的应用程序无法启动,即使我将主layout.html设置为欢迎-file在web.xml中

我的问题是.我应该使用什么作为视图解析器,以便它与angularjs一起使用,如果我甚至应该使用视图解析器?

编辑:我正在尝试使用ContentNegotiatingViewResolver,我得到:

DEBUG ContentNegotiatingViewResolver - Requested media types are [text/html] based on Accept header types and producible media types [*/*])
DEBUG ContentNegotiatingViewResolver - No acceptable view found; returning null
DEBUG DispatcherServlet - Could not complete request
javax.servlet.ServletException: Could not resolve view with name 'layout.html' in servlet with name …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc angularjs

8
推荐指数
1
解决办法
1万
查看次数

在 jdk 14 应用程序上启用 jdwp 会导致协议错误不支持地址系列

对于在 Linux 上运行的 JDK 14 应用程序,添加以下 JVM 参数

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

结果出现以下错误

Starting Main...
ERROR: transport error 202: socket creation failed: Address family not supported by protocol
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [open/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c:734]
Run Code Online (Sandbox Code Playgroud)

将地址从 更改为*:5005似乎localhost:5005可行,但它仅绑定到本地主机。我知道在 JDK 12 上有效的事实*:5005,但我找不到任何与此相关的更改,事实上 JPDA 规范仍然提到了*jse 14 的选项https://docs.oracle.com/en/java/javase/14/文档/规格/jpda/conninv.html。有人知道我可以研究什么吗?这是一个错误还是一个我似乎找不到文档的功能。

java remote-debugging jdwp

8
推荐指数
1
解决办法
2919
查看次数

Android上的Groovy CompileStatic搞砸了Groovy Truth

在Groovy中,只需将变量放在里面就可以测试null和empty的集合,如下所示:

def collection = [ 'test' ]
if(!collection) {
  //Collection is either null or empty, handle exceptional business here
}
Run Code Online (Sandbox Code Playgroud)

但是,当放在@CompileStatic包含这样的代码的类上时,它会停止工作(但仅限于Android)并出现错误:

02-16 20:49:03.837: E/AndroidRuntime(9013): org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack: No signature of method: java.util.ArrayList.asBoolean() is applicable for argument types: () values: []
Run Code Online (Sandbox Code Playgroud)

运行桌面版时似乎不会发生这种情况.

提供更多背景信息.这是一个生成的LibGDX项目,包含三个项目(-core,-desktop,-android),其中-core项目已转换为groovy项目.引用了-core项目,以及-desktop和-android项目的依赖项

无论是否使用@CompileStatic注释注释类,并且正确识别Groovy Truth,桌面版本都可以正常工作.

另一方面,在Android上,出现上述错误.

我没有使用grooid库,因为转换为groovy的项目在桌面和android之间共享.

如果它有任何价值,这里是build.gradle项目级别的内容:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.5'        
    }
}

allprojects {
    apply plugin: "eclipse"
    apply plugin: "idea"

    version = '1.0'
    ext {
        appName …
Run Code Online (Sandbox Code Playgroud)

groovy android truthiness libgdx

7
推荐指数
1
解决办法
285
查看次数

为什么更改焦点上的可见性/显示不起作用?

我已经有了一个想法,点击输入框将显示和拉伸的搜索"按钮".然而,我没有使用不可见的复选框,而是决定尝试使用标签,因为单击标签会将焦点放在标签所连接的元素上.虽然提供焦点并进行基本转换确实有效,但我似乎无法使用visibility: hidden/visible或隐藏/显示文本框display: none/inline-block.而且我不想仅仅依赖于不透明度,因为即使它被隐藏也可以找到/点击文本框.

目前的尝试:JsFiddle

为什么这不起作用?我究竟做错了什么?

html css css3

5
推荐指数
1
解决办法
7493
查看次数

使用 maven\issues with Nexus 调试 Grails 命令“刷新依赖”

我在公司网络上,所以为了检索我们使用 Nexus 的依赖项。Grails 存储库已添加到 nexus 存储库中,所以现在剩下的就是配置 grails 以使用 nexus。

对于 Java Maven 项目的开发,我只需要指定它settings.xml应该关注哪个文件,因为 Nexus URL 和凭据存储在那里。

现在我们切换到 Grails,在创建新项目时,grails 在配置类路径上挂起大约 200 秒(因为它被配置为在 200 秒后超时),然后说:

Resolve error obtaining dependencies: Failed to read artifact descriptor for jline:jline:jar:2.12 (Use --stacktrace to see the full trace)
Error |
Required Grails build dependencies were not found. This is normally due to internet connectivity issues (such as a misconfigured proxy) or missing repositories in grails-app/conf/BuildConfig.groovy. Please verify your configuration to continue.
Process was killed
Run Code Online (Sandbox Code Playgroud)

现在这可能是 …

java grails groovy maven

5
推荐指数
1
解决办法
2120
查看次数

Kotlin在伴侣对象中使用Apply引发意外错误

假设我想A通过从类B中复制值来实例化类的对象,这是常见的做法,例如,在映射DTO时。为了在Java或Groovy中实现此目的,我将在适当的DTO上创建带有签名的静态方法fromB(A a),然后a.val = b.val...在Java中或a.with { val = b.val... }在Groovy中使用复制值。

在Kotlin中,我注意到它instance.apply{}与Groovy的相似之处with在于,它允许我直接访问对象变量,而无需不断引用对象本身,因为该引用似乎隐含在闭包中。

但是,在伴侣对象中使用Apply时遇到了一个奇怪的意外错误。如果我A().apply {}在A的伴随对象的函数中使用,Expression is inaccessible from a nested class 'Companion', use 'inner' keyword to make the class inner则会收到一个奇怪的错误,因为我直接在对象的实例上调用apply,因此希望我始终可以访问它的公共属性。更不用说似乎不能将伴随对象设置为inner错误对象,因此错误消息中的建议并不是很有帮助。

这是完整的示例代码:

fun main(args: Array<String>) {
    val b = B("Hello", "World")
    val a = A.fromB(b)

    print("$a.value1 $a.value2")
}


class A() {
    var value1: String? = null
    var value2: String? = null

    companion object { …
Run Code Online (Sandbox Code Playgroud)

kotlin

5
推荐指数
1
解决办法
921
查看次数

Spring boot runnable jar 找不到通过 java.system.class.loader jvm 参数设置的类加载器

在这样的模块结构中:

项目
|
|- 通用模块
|- 应用模块

在 app 模块具有公共模块作为依赖项的情况下,我在公共模块中定义了一个自定义类加载器类。app 模块有一个-Djava.system.class.loader=org.project.common.CustomClassLoaderjvm 参数集来使用公共模块中定义的自定义类加载器。

在 IDEA 中运行一个 spring boot 项目,这非常有效。找到自定义类加载器,设置为系统类加载器,一切正常。

编译一个可运行的 jar(使用没有任何自定义属性的默认 spring-boot-maven-plugin),jar 本身包含所有类,并且在它的 lib 目录中是具有自定义类加载器的公共 jar。但是运行 jar 的-Djava.system.class.loader=org.project.common.CustomClassLoader结果是以下异常

java.lang.Error: org.project.common.CustomClassLoader
    at java.lang.ClassLoader.initSystemClassLoader(java.base@12.0.2/ClassLoader.java:1989)
    at java.lang.System.initPhase3(java.base@12.0.2/System.java:2132)
Caused by: java.lang.ClassNotFoundException: org.project.common.CustomClassLoader
    at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@12.0.2/BuiltinClassLoader.java:583)
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@12.0.2/ClassLoaders.java:178)
    at java.lang.ClassLoader.loadClass(java.base@12.0.2/ClassLoader.java:521)
    at java.lang.Class.forName0(java.base@12.0.2/Native Method)
    at java.lang.Class.forName(java.base@12.0.2/Class.java:415)
    at java.lang.ClassLoader.initSystemClassLoader(java.base@12.0.2/ClassLoader.java:1975)
    at java.lang.System.initPhase3(java.base@12.0.2/System.java:2132)

Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?是因为在可运行的 jar 中,类加载器类位于 lib 目录中的 jar 中,因此类加载器试图在将 lib 类添加到类路径之前进行设置?除了将类加载器从 common 移动到所有其他需要它的模块之外,我还能做些什么吗?

编辑:我尝试将自定义类加载器类从通用模块移动到应用程序,但我仍然遇到相同的错误。这里发生了什么?

java spring classloader spring-boot

5
推荐指数
1
解决办法
969
查看次数

C++ Visual Studio 2012让Box2D和SFML协同工作

基本上我试图让SFML和Box2D在VS2012下一起工作.我让他们两个独立工作,但我不能让他们一起工作.

如果我尝试一起运行它们,我会得到一堆:

error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MTd_StaticDebug' in Main.obj
Run Code Online (Sandbox Code Playgroud)

如果我将属性中的RuntimeLibrary值从MDd更改为MTd,则会出现一堆错误,例如:

error LNK2005: __amsg_exit already defined in MSVCRTD.lib(MSVCR110D.dll)
error LNK2005: __cexit already defined in MSVCRTD.lib(MSVCR110D.dll)
error LNK2005: __exit already defined in MSVCRTD.lib(MSVCR110D.dll)
Run Code Online (Sandbox Code Playgroud)

一堆那些以及两个警告:

 warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library` 
 warning LNK4098: defaultlib 'libcmtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
Run Code Online (Sandbox Code Playgroud)

如果我也不工作,我得到一堆类似的错误:

error LNK2001: unresolved external symbol __purecall

对于SFML,我非常肯定我正确地构建了它.另一方面,对于Box2D,我不太确定.我使用了本指南,你可以看到它适用于VS2010.但是我在构建和HelloWorld.cpp示例时没有遇到任何问题.

那么我可以做些什么来完成这项工作?

编辑:我已经让它工作,但只有调试版本我做的是我尝试重建Box2D库作为/ MTd进行调试和/ MT发布调试一个内置正常,而发布版本没有.
调试版本工作正常,但发布版本抛出

warning …
Run Code Online (Sandbox Code Playgroud)

c++ linker-errors box2d sfml

2
推荐指数
1
解决办法
2613
查看次数