小编Rob*_*roj的帖子

Java 8 Streams - 为什么我不能对整数流求和?

给出一个Integer列表: List<Integer> numbers = Arrays.asList(1,2,3);

为什么我不能总结他们:numbers.stream().sum();

相反,我必须这样做: numbers.stream().mapToInt(e -> e).sum();

我知道mapToInt产生一种IntStream原始的专业化.但我仍然没有得到它.为什么它不能和整数相加?我知道这个列表有整数,编译器也应该能够做到这一点.毕竟它现在可以推断lambda表达式中的类型参数.

好的,一个Integer可能为null,sum也会失败.但我可以对此负责并过滤掉null:

numbers.stream().filter(Objects::nonNull).sum();

为什么我不能总结整数流?

java java-8 java-stream

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

Spring JdbcTemplate - 如何在实现多租户之前添加每个查询?

建立

我有一个使用Spring 4.3,JdbcTemplate,Hibernate 5和MySQL 8的应用程序.我已经在每个模式的hibernate中实现了多租户,我使用hibernates多租户机制切换模式 - MultiTenantConnectionProvider并且基本上在那里做:

connection.createStatement().execute("USE " + databaseNamePrefix + tenantIdentifier); 
Run Code Online (Sandbox Code Playgroud)

这很有效.

现在我的应用程序的报告部分JdbcTemplate用于查询数据库.现在我想在JdbcTemplate执行的每个查询之前发出此USE tenantIdentifier语句.

如何在JdbcTemplate执行的每个查询中添加一些SQL或语句?

我试过的

我查看了JdbcTemplate,我发现只有设置一个NativeJdbcExtractor.我已经尝试了下面的代码,但是他甚至没有通过这种方法登录.

@Bean
@DependsOn("dataSource")
public JdbcTemplate jdbcTemplate() {
  JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource());
  jdbcTemplate.setNativeJdbcExtractor(new SimpleNativeJdbcExtractor(){
     @Override
     public Connection getNativeConnection(Connection con) throws SQLException {
        LOGGER.info("getNativeConnection");
        System.out.println("aaa");
        return super.getNativeConnection(con);
     }

     @Override
     public Connection getNativeConnectionFromStatement(Statement stmt) throws SQLException {
        System.out.println("aaa");
        LOGGER.info("getNativeConnectionFromStatement");
        return super.getNativeConnectionFromStatement(stmt);
     }

  });
  return jdbcTemplate;
}
Run Code Online (Sandbox Code Playgroud)

添加了对Spring的功能请求:https://jira.spring.io/browse/SPR-17342

编辑:我看了Spring 5,他们删除了JdbcExtractor的东西,所以这绝对是错误的道路.

java spring jdbc spring-jdbc jdbctemplate

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

Spring Pageable排序公开了dao的内部命名

我正在使用Spring和Spring存储库构建其余的微服务。我想让客户端控制分页和排序(使用spring-data-rest)。

public PagedResources<TestDto> find(
    @PageableDefault(page = 0, size = 50) final Pageable pageable,
    final PagedResourcesAssembler<Test> assembler) {

    final Page<Test> pagedResults = testRepository.findAll(pageable);

    return assembler.toResource(pagedResults, testResourceAssembler);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码很好用,但是我不满意排序是耦合到我的dao层而不是dto层。例:

http://localhost:8080/my-service/test?size=100&page=0&sort=statusCode,asc
Run Code Online (Sandbox Code Playgroud)

json响应(DTO):

{
  "links": [
    ...
    ...
  ],
  "content": [
    {
      "id": 4
      "status": "OK"
      "links": []
    }
  ],
  "page": {
    "size": 100,
    "totalElements": 1,
    "totalPages": 1,
    "number": 0
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,请求url中的“ statusCode”排序与响应dto中相应的“ status”之间的区别。从客户的角度来看,这是不合逻辑的。现在,我还公开了该服务的一些内部信息。我无法更改服务的实现,因为它可以由客户端使用,并且在更改名称后会破坏旧的请求。

当我添加一个自定义映射以处理searchrequest中的状态码与状态的差异时:

private PageRequest getPageRequest(final Pageable pageable) {
    final List<Order> newOrder = new ArrayList<>();
    for (final Order order : pageable.getSort()) …
Run Code Online (Sandbox Code Playgroud)

java dao dto spring-data-jpa spring-data-rest

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

如何在Windows 7下找出应用程序需要的权限

有没有办法找出我的应用程序需要什么特权才能在Windows 7环境中运行?

我有一个Delphi应用程序,它使用BDE和ODBC进行数据库连接.此应用程序适用于在普通用户帐户上运行Windows 7的大多数计算机.但是,在某些计算机上,它仅适用于具有管理权限的帐户,并且在普通用户帐户上无法正常工作.我怀疑这是一个许可问题.计算机也在Active Directory中运行.

我试图从SysInternals使用Process Monitor找到一些信息,但是我的输出太高级了.我的应用程序的两次运行的进程监视器日志(1.成功管理权限,2.正常权限不成功)有超过22k行,我在进程监视器日志(haystack)中找不到答案(针).

我该怎么做才能确定我的应用程序在Windows 7中需要的权限?

windows delphi privileges bde windows-7

4
推荐指数
1
解决办法
2832
查看次数

有人可以解释堆叠上下文吗?

我最近有一个错误,其中视频播放器在 jquery ui 对话框中不可点击。我最终通过覆盖 position:relative; 解决了这个问题。有位置:继承;

该问题的其他解决方案包括删除位置:相对;完全或通过使播放器类的 z-index 为 1 以外的值。

正如我所读到的,这些都表明在这种情况下改变了堆叠上下文,从而解决了我的问题。但是,我仍然不明白我的情况或一般堆叠上下文中发生了什么。有没有其他人对可能发生的事情有任何好的例子/建议?

<div class="player"> 
    <div id="videoPlayer_wrapper" style=" position: relative; width:580px; height: 192px;">
        <object type="application/x-shockwave-flash" data="/flash/player.swf" width="100%" height="100%" bgcolor="#000000" id="videoPlayer" name="videoPlayer" tabindex="0">
        </object>
    </div> 
</div>
Run Code Online (Sandbox Code Playgroud)

播放器的 CSS 在哪里

.player {
    margin-bottom: 20px;
    position: relative;
    z-index: 1;
}
Run Code Online (Sandbox Code Playgroud)

css z-index

4
推荐指数
1
解决办法
772
查看次数

Wicket - 陈旧页面异常 - 如何调试?

我的应用程序似乎工作正常,但在控制台中它抛出了很多StalePageExceptions。我不知道为什么。如何调试此异常的原因?此异常的公共原因是什么?

13:32:29,361 WARN  [RequestCycleExtra] (default task-60) ********************************
13:32:29,362 WARN  [RequestCycleExtra] (default task-60) Handling the following exception: org.apache.wicket.core.request.mapper.StalePageException

13:32:29,363 WARN  [RequestCycleExtra] (default task-60) ********************************
13:32:35,626 WARN  [RequestCycleExtra] (default task-64) ********************************
13:32:35,627 WARN  [RequestCycleExtra] (default task-64) Handling the following exception: org.apache.wicket.core.request.mapper.StalePageException
Run Code Online (Sandbox Code Playgroud)

我使用最新的 Wicket 版本 - 6.18,但我永远拥有这个。

编辑:

语句GokListPanel.java

  columns.add(new StatementLinkColumn(Model.of("")) {
     @Override
     public void onClick(IModel<StatementGokCommunity> model, AjaxRequestTarget target) {
        ComponentMode componentMode = ComponentMode.EDIT;
        MarkupContainer mc = StatementGokListPanel.this.getParent();
        GokCommunityStatementPanel panel = new GokCommunityStatementPanel("panel", model.getObject(), componentMode, true);
        StatementGokListPanel.this.replaceWith(panel);
        target.add(mc);
     }
  });
Run Code Online (Sandbox Code Playgroud)

java wicket wicket-6

4
推荐指数
1
解决办法
3743
查看次数

使用Redis Spring在Redis上进行多字段查询

这将是一个非常基本的问题,因为我是 Spring-Redis 的新手

我目前正在学习 Redis 数据库,并且正在优先开发一个功能,我不得不使用 Redis 来实现此功能。下面是我面临的挑战/查询。

现在我们有一个 DataModel 如下:

@RedisHash("Org_Work")
public class OrgWork {

   private @Id @Indexed UUID id;
   private @Indexed String CorpDetails;
   private @Indexed String ContractType;
   private @Indexed String ContractAssigned;
   private @Indexed String State;
   private @Indexed String Country; 

}
Run Code Online (Sandbox Code Playgroud)
public interface OrgWorkRepository extends CrudRepository<HoopCalendar, String> {

List<OrgWork> findByCorpDetailsAndContractTypeAndStateAndCountry(String CorpDetails, String ContractType, String ContractAssigned, String State, String Country);

}
Run Code Online (Sandbox Code Playgroud)

我们正在开发一个 API 来查询上述数据模型,其中前端将向我们发送 CorpDetails、ContractType、ContractAssigned、State 和 Country 字段,我们必须针对 Redis 数据库查询这些字段并返回 DurationOfWork 对象。

在这种情况下,我将有大约的负载。每分钟 100000 个呼叫。

请告诉我这是否是正确的方法以及一些关于缩短响应时间的建议。

***更新了查询

java response-time redis spring-boot

4
推荐指数
1
解决办法
8924
查看次数

C#HTML Agility Pack(非/错)迭代节点集合

我正在使用HTML Agility Pack从w网页获取网址.URL是:

http://goo.gl/DqfQl

如果我使用下面的代码,我得到我想要的链接:

String html = getHtml("http://goo.gl/DqfQl");

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();

doc.LoadHtml(html);

HtmlNodeCollection address_rows = doc.DocumentNode.SelectNodes("//div[@class='name']/a"); 

foreach (HtmlNode row in address_rows)
{
    MessageBox.Show(row.GetAttributeValue("href",LINK_NOT_FOUND));
}
Run Code Online (Sandbox Code Playgroud)

但是,当我改变HtmlNodeCollection来获取方含divclass="row'和想获取网址我得到总是第一个URL.

HtmlNodeCollection address_rows = doc.DocumentNode.SelectNodes("//div[@class='row']"); 

foreach (HtmlNode element in address_rows) {
    MessageBox.Show(element.SelectSingleNode("//div[@class='name']/a").GetAttributeValue("href",LINK_NOT_FOUND));
}   
Run Code Online (Sandbox Code Playgroud)

我用这段代码玩了一下,有一段时间我觉得我工作了.但现在我无法使用第二个代码片段选择我想要的所有URL.你能帮我吗?

c# collections foreach html-agility-pack

3
推荐指数
1
解决办法
3787
查看次数

Spring,Spring Data JPA:org.hibernate.hql.internal.ast.QuerySyntaxException:Test未映射

我得到一个org.hibernate.hql.internal.ast.QuerySyntaxException: Test is not mapped当我在Spring Data JPA Reposiotry中创建一个使用@Queryannontation和Spring Data JPA验证它的方法.

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Test is not mapped [SELECT t from Test t]
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1750)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:331)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_40]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_40]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_40]
    at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_40]
    at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:344)
    at com.sun.proxy.$Proxy125.createQuery(Unknown Source)
    at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:86)
    ... 47 more
Run Code Online (Sandbox Code Playgroud)

存储库看起来像这样:

public interface TestRepository extends JpaRepository<Test, Long>{

   Test findByDescriptionContaining(String text); //works

   @Query("SELECT t from Test t") //fails
   Test getOr();

}
Run Code Online (Sandbox Code Playgroud)

令人感兴趣的是我可以使用Spring Data …

spring hibernate spring-data spring-data-jpa

3
推荐指数
1
解决办法
7780
查看次数

更新到Spring 5.1-java.lang.NoClassDefFoundError:org / springframework / http / server / reactive / ServletServerHttpResponse $ ResponseBodyProcessor

当尝试从4.3更新到Spring 5.1时,我在部署时得到以下stacktrace。服务器为WildFly14。运行时为JDK11。编译器目标为1.8。

我试过清理便当,但无济于事。下面进一步是dependency:tree输出。

22:23:51,323 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."BDOS-POP.war".component."org.springframework.http.server.reactive.ServletServerHttpResponse$ResponseAsyncListener".WeldInstantiator: org.jboss.msc.service.StartException in service jboss.deployment.unit."BDOS-POP.war".component."org.springframework.http.server.reactive.ServletServerHttpResponse$ResponseAsyncListener".WeldInstantiator: Failed to start service
    at org.jboss.msc@1.4.3.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1728)
    at org.jboss.msc@1.4.3.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1556)
    at org.jboss.threads@2.3.2.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
    at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
    at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1364)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.jboss.weld.resources.spi.ResourceLoadingException: Error while loading class org.springframework.http.server.reactive.ServletServerHttpResponse$ResponseAsyncListener
    at org.jboss.weld.core@3.0.5.Final//org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:186)
    at org.jboss.weld.core@3.0.5.Final//org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:194)
    at org.jboss.weld.core@3.0.5.Final//org.jboss.weld.resources.ClassTransformer.getEnhancedAnnotatedType(ClassTransformer.java:232)
    at org.jboss.as.weld@14.0.0.Final//org.jboss.as.weld.injection.InjectionTargets.createInjectionTarget(InjectionTargets.java:60)
    at org.jboss.as.weld@14.0.0.Final//org.jboss.as.weld.injection.WeldComponentService.start(WeldComponentService.java:120)
    at org.jboss.msc@1.4.3.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1736)
    at org.jboss.msc@1.4.3.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1698)
    ... 6 more
Caused by: java.lang.NoClassDefFoundError: Failed to link org/springframework/http/server/reactive/ServletServerHttpResponse$ResponseBodyProcessor (Module "deployment.BDOS-POP.war" from Service Module Loader): Failed to link org/springframework/http/server/reactive/AbstractListenerWriteProcessor …
Run Code Online (Sandbox Code Playgroud)

java spring noclassdeffounderror wildfly

3
推荐指数
1
解决办法
2454
查看次数