给出一个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();
为什么我不能总结整数流?
建立
我有一个使用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的东西,所以这绝对是错误的道路.
我正在使用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) 有没有办法找出我的应用程序需要什么特权才能在Windows 7环境中运行?
我有一个Delphi应用程序,它使用BDE和ODBC进行数据库连接.此应用程序适用于在普通用户帐户上运行Windows 7的大多数计算机.但是,在某些计算机上,它仅适用于具有管理权限的帐户,并且在普通用户帐户上无法正常工作.我怀疑这是一个许可问题.计算机也在Active Directory中运行.
我试图从SysInternals使用Process Monitor找到一些信息,但是我的输出太高级了.我的应用程序的两次运行的进程监视器日志(1.成功管理权限,2.正常权限不成功)有超过22k行,我在进程监视器日志(haystack)中找不到答案(针).
我该怎么做才能确定我的应用程序在Windows 7中需要的权限?
我最近有一个错误,其中视频播放器在 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) 我的应用程序似乎工作正常,但在控制台中它抛出了很多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) 这将是一个非常基本的问题,因为我是 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 个呼叫。
请告诉我这是否是正确的方法以及一些关于缩短响应时间的建议。
***更新了查询
我正在使用HTML Agility Pack从w网页获取网址.URL是:
如果我使用下面的代码,我得到我想要的链接:
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来获取方含div同class="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.你能帮我吗?
我得到一个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 …
当尝试从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 ×6
spring ×3
bde ×1
c# ×1
collections ×1
css ×1
dao ×1
delphi ×1
dto ×1
foreach ×1
hibernate ×1
java-8 ×1
java-stream ×1
jdbc ×1
jdbctemplate ×1
privileges ×1
redis ×1
spring-boot ×1
spring-data ×1
spring-jdbc ×1
wicket ×1
wicket-6 ×1
wildfly ×1
windows ×1
windows-7 ×1
z-index ×1