小编Ale*_*rov的帖子

复合键和 spring-data-jdbc

我有一个使用复合键的数据库。是否可以使用 spring-data-jdbc?我尝试了里程碑版本 1.1M2,其中我以以下方式映射了我的实体:

class History {

   @ID
   @Embedded
   private CompositeHistoryID  id;
}
Run Code Online (Sandbox Code Playgroud)

然后在我的存储库类中,我添加了

HistoryRepository extends Repository<History,CompositeHistoryID  >{
   History  findByhId(CompositeHistoryID  id)
}
Run Code Online (Sandbox Code Playgroud)

我跟踪了SQL,它没有用。嵌入部分有效,但 where 子句不正确。它使用单个参数持有者而不是具有常规复合键结构,其中 element1=subkey1 和 element2=subkey2 等等......

我有两个问题。有什么方法可以使复合 ID 工作吗?

第二个问题是,让我们假设我使用自定义@Query的顶部findByID将保存方法下班后,如果?什么是完全没有ID,如果我只是随机选择一个列并说你将成为我的ID怎么办?

java spring jdbc spring-data spring-data-jdbc

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

Axis2命名空间/类路径问题

我在一个Web应用程序上工作,从其代码中调用多个Web服务客户端.

每个Web服务都有一些常见的命名空间,但是当我生成每个客户端时,我正在将这些命名空间映射到不同的包

例如

Web Service 1的namespace1 - > com.company.webservice.client1.service

Web Service 2的namespace1 - > com.company.webservice.client2.service

其中namespace1引用相同的命名空间URL.

使用Wsdl2Java的namespace2package选项:

// Web Service Client 1's namespace parameter
--namespace2package http://www.multispeak.org/Version_3.0=com.company.webservice.client1.service

// Web Service Client 2's namespace parameter
--namespace2package http://www.multispeak.org/Version_3.0=com.company.webservice.client2.service
Run Code Online (Sandbox Code Playgroud)

我可以毫无问题地为这些服务生成Web服务客户端代码,只要生成的客户端jar中只有一个在给定Web服务调用的类路径上,我就可以自己调用每个客户端.但是,如果我将两个Web服务客户端jar放在类路径上,则只有一个Web服务客户端可以工作(其各自的客户端jar首先在类路径上).

尝试调用时,其他Web服务客户端失败,但以下情况除外:

java.lang.ClassCastException:com.company.webservice.client1.service.impl.GetAllMetersResponseDocumentImpl无法强制转换为com.company.webservice.client2.service.GetAllMetersResponseDocument

我已经混淆了上面的一些实际值.

因此,问题似乎是关于Axis2/XMLBeans如何查找适当的类以匹配给定的XML来解析.

我可以更改命名空间映射,以便它们相互匹配,之后它可以正常工作.但是,缺点是我在同一个包结构中有多个包含相同生成代码的Web服务客户端jar,这些类只能从它在类路径中找到的第一个客户端jar中的模型中实例化.

有没有办法这样做,以便我可以为每个Web服务客户端jar保留不同的命名空间?

或者我只是被迫将每个命名空间映射到使用该命名空间的每个客户端的同一个包?

希望这个问题有意义,但是如果我需要提供其他任何有用的东西,请告诉我,我将进一步详细说明这个问题,但希望有使用Wsdl2Java的Axis2/XMLBeans/web服务客户端生成知识的人应该是能够在没有更多信息的情况下回答这个

更新1: 我终于放弃了,只是使所有的命名空间映射指向同一个包而不是每个Web服务客户端的定制,并且在类路径上的各个JAR中获得了同一个类的多个副本.不像我希望的那样优雅,但至少它有效.

如果有人能想出一个更好的解决方案,允许我在每个客户端使用定制副本,请告诉我.

更新2: 这种方法同样不起作用,因为尽管使用相同的命名空间,两个Web服务产生不同版本的命名空间模型,现在导致编译时错误依赖于类路径顺序.那么......回到原点......

java axis2 web-services wsdl2java xmlbeans

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

使用Spring Data JPA将Joda Money的总和拆分为2列

我正在尝试使用Jadira类型的JODA钱类来处理到Hibernate 4的映射.

它工作正常(除了我有太多的货币字段).

但我需要构建一个聚合查询来总结一些总数.

这是类型声明.

@Columns(columns = { @Column(name = "total_currency", length=10), @Column(name = "total") })
@Type(type = "org.jadira.usertype.moneyandcurrency.joda.PersistentMoneyAmountAndCurrency")
private Money total;
Run Code Online (Sandbox Code Playgroud)

我正在尝试定义一个查询,例如:

@Query(value="select sum(oi.total) from OrderItem oi where oi.order = ?1")
Double calculateSubtotal(Order order);
Run Code Online (Sandbox Code Playgroud)

有没有办法使用JPQL聚合Money字段的查询?

谢谢.

java hibernate jpa spring-data joda-money

6
推荐指数
1
解决办法
822
查看次数

Spring Boot 2 多数据源初始化架构

我有一个 Spring Boot 2 应用程序,它使用两个数据源 - 一个 Oracle 和一个 H2。H2 数据源设置为辅助数据源,我想在启动时为其创建架构,但它永远不会触发 schema.sql 文件。这是我的数据源配置文件:

@Configuration
public class DataSourceConfig {
    @Bean
    @Primary
    @ConfigurationProperties("spring.datasource")
    public DataSourceProperties primaryDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean
    @Primary
    @ConfigurationProperties("spring.datasource")
    public DataSource primaryDataSource() {
        return primaryDataSourceProperties().initializeDataSourceBuilder().build();
    }

    @Bean
    @ConfigurationProperties("spring.runlogdatasource")
    public DataSourceProperties runlogDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean
    @ConfigurationProperties("spring.runlogdatasource")
    public DataSource runlogDataSource() {
        return runlogDataSourceProperties().initializeDataSourceBuilder().build();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的 application.properties 文件:

spring.datasource.url=jdbc:oracle:thin:@my.database.com:1521/mydb
spring.datasource.username=test
spring.datasource.password=ENC(3PXcnoBndLpWN1EcMtmIn+odOwhdWjSrqANijutxuekKEIOco64Jew==)
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.initialization-mode=never
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=10
jasypt.encryptor.bean=stringEncryptor
spring.runlogdatasource.url=jdbc:h2:~/runlogdb;CIPHER=AES;DB_CLOSE_ON_EXIT=FALSE;
spring.runlogdatasource.username=sa
spring.runlogdatasource.password=ENC(3PXcnoBndLpWN1EcMtmIn+odOwhdWjSrqANijutxuekKEIOco64Jew==)
spring.runlogdatasource.driverClassName=org.h2.Driver
spring.runlogdatasource.platform=h2
spring.runlogdatasource.schema=classpath:schema-h2.sql
Run Code Online (Sandbox Code Playgroud)

对于主数据源,我可以看到它进入了 DataSourceInitializerInvoker,这是它尝试加载架构的地方,但由于没有 schema-all.sql 文件,它跳过了那个文件。但是,我确实有一个 …

java database spring initialization spring-boot

6
推荐指数
1
解决办法
6030
查看次数

spring-data-jdbc 是如何赞美 MyBatis 的?

我想了解为什么 spring-data-jdbc 提供与 MyBatis 的集成。

  • 它在解决什么问题?
  • spring-data-jdbc 是如何赞美 MyBatis 的。
  • 这只是一个使映射器符合存储库的问题,还是超出了这个问题。
  • 当我可以使用 Mappers 时,为什么要结合使用 MyBatis 和 spring-data-jdbc。

java mybatis spring-data spring-mybatis spring-data-jdbc

6
推荐指数
1
解决办法
1785
查看次数

错误500 - 内部服务器错误java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config

我在weblogic server中部署war文件时遇到以下错误.我使用Maven创建了这个.

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
at org.springframework.web.servlet.support.JstlUtils.exposeLocalizationContext(JstlUtils.java:97)
at org.springframework.web.servlet.view.JstlView.exposeHelpers(JstlView.java:135)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:211)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3750)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:252)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Run Code Online (Sandbox Code Playgroud)

我有lib中的jstl-1.2和weblogic中的jstl-1.2.但是获得相同的异常.

我也尝试从war lib文件夹中删除jstl-1.2.即使获得相同的异常.

可能是什么原因?

这是我的pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>se.jo.joassivosWebApp</groupId>
  <artifactId>MApp</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>MApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>

 <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.4</version> …
Run Code Online (Sandbox Code Playgroud)

java jsp servlets weblogic maven

5
推荐指数
2
解决办法
1470
查看次数

在非交互式应用程序中处理 150GB 堆

您好,我有一个使用内存数据网格的 150GB 堆内存程序。运营部门对我提出了使用单台机器的疯狂要求。现在我们都知道如果并行垃圾收集器使用超过 150GB 时会发生什么,如果调用 FULL GC,可能会需要数十分钟的垃圾收集。

我希望 Java 9 能够推出 Shenandoah 低暂停 GC。不幸的是,据我所知,它没有在 Java 9 中列出。有人对此了解吗?

尽管如此,我想知道 G1 GC 对于这么大的堆内存将如何执行。

最后一个问题。因为我有非交互式批处理应用程序,应该在 2 小时内完成,所以可以说。这里的主要目标是确保 Full GC 永远不会启动。如果我确保有足够的内存,假设可以达到的最大堆为 150,并且我分配了 250GB,我可以很有信心地说 Full GC GC 永远不会启动还是?通常如果新生代+老生代达到最大堆就会触发full GC。可以用不同的方式触发吗?

有一个重复的请求,我将尝试在这里解释为什么这个问题不是重复的。首先我们讨论的是 150GB 堆,它为问题添加了完全不同的维度。其次,我不使用 RMI,因为它是在提到的问题中,第三,我在字里行间询问有关 G1 垃圾收集器的问题。此外,一旦我们超出 32GB 堆屏障,我们就会进入 64 位地址空间,你无法让我相信关于<32GB堆的问题与关于堆>32GB的问题是相同的,更不用说自从Java 7(例如PermSpace)不存在以来,事情已经发生了一些变化。

java performance garbage-collection jvm java-9

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

Spring Boot - 可以拦截@Async服务方法吗?

我目前有一个带有 @Async 方法的 Spring 服务,因此当调用它时,Spring 在新线程中执行它,而不需要父线程的请求属性。

我需要一种方法在调用异步服务时将这些属性复制到子线程。

有没有什么方法可以添加 Spring 在创建新线程时调用的某种拦截器类,我可以在其中放置逻辑来复制相关的上下文值?

理想情况下,我想避免在方法参数中传递值。

java aop spring interceptor spring-boot

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

将KAFKA与现代In Memory内存数据网格(IMDG)进行比较

我有一些IMDG经验,对KAFKA来说还很陌生。我正在尝试了解Kafka的用例。我了解这是一个流媒体/消息平台。它的许多问题在现代的In Memory Data Grids中都有一些对立部分。当有人希望使用Kafka和您希望使用IMDG时,您能否对用例进行一些说明?我需要画一个平行线。

我举一个例子。我注意到使用Kafka进行数据复制。尽管可能,但我认为IMDG在此方面更加强大和自动化。

我也对这两种技术如何相互补充感兴趣,因为我认为它们并不是直接竞争。

java infinispan hazelcast apache-kafka ignite

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

How to enable tracing profiling in jvisualvm?

I've read that jvisualVm can do tracing profile.

So I ran jvisualVm on my local pc and I see following: 在此输入图像描述

According the materials I read that jvisualVm allows to use tracing profiling on Profiler tab and it must look like:

在此输入图像描述

But as you can see I don't have it. I tried to find button to show that tab but I was not successful.

How can I enable it?

P.S.

According the @Alexandar Petrov answer I tried to add plugun manually …

java debugging trace profiling jvisualvm

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