小编Rob*_*roj的帖子

为什么按位置读取JDBC ResultSet的速度比按名称读取的速度快多少?

Hibernate团队宣布Hibernate 6时宣称,通过在JDBC ResultSet中从按名称读取切换为按位置读取,它们可以获得性能上的好处。

高负载性能测试表明,Hibernate按名称从ResultSet中读取值的方法是其扩展吞吐量的最大限制因素。

这是否意味着他们将呼叫从更改 getString(String columnLabel)getString(int columnIndex)

为什么这样更快?

由于ResultSet是一个接口没有性能增益是否取决于执行它的JDBC驱动程序?

收益有多大?

java performance hibernate jdbc hibernate-6.x

15
推荐指数
2
解决办法
263
查看次数

如何正确版本控制(svn:ignore)一个Java项目(Maven,Spring)?

我正在进行为期两天的Java EE培训.我们在那里使用Java EE,Spring Framework,Maven,Springsource Tool Suite(Eclipse),Tomcat.

我带了我们在那里创建的Eclipse工作区并在我的工作PC上运行它.如果我没记错的话,我只能正确配置Tomcat,它可以在我的电脑上运行.

现在我想在subversion中保存包含5个"sub"项目的已创建的Eclipse工作区,以便我的同事可以将它们签出并在他们的计算机上运行.

怎么做到这一点?我在某处发现了一个svn:ignore规则:

.classpath
.project
.settings
target
Run Code Online (Sandbox Code Playgroud)

使用tortoiseSVN我添加到具有工作空间的文件夹这个忽略规则,但发现底层文件夹目标没有删除所以我手动删除它们并"添加到忽略列表".但之后,Spring源工具套件中的项目没有看到mevan依赖项(我认为是这样)因为导入被破坏了.STS强调组织.在进口,并说它无法解决这个问题.

我如何正确版本控制这样的项目?

java svn spring ignore maven

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

Java 8 Stream - 并行执行 - 不同的结果 - 为什么?

比方说,我有一个List<Integer> ints = new ArrayList<>();,我想将值添加到它,并使用比较并行执行的结果forEach()Collectors.toList().

首先,我将一些来自顺序IntStream和forEach的值添加到此列表中:

 IntStream.range(0,10).boxed().forEach(ints::add);
Run Code Online (Sandbox Code Playgroud)

我得到了正确的结果:

ints ==> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

现在我.clear()在列表中并行执行相同的操作:

IntStream.range(0,10).parallel().boxed().forEach(ints::add);
Run Code Online (Sandbox Code Playgroud)

现在由于多线程,我得到了错误的结果:

ints ==> [6, 5, 8, 9, 7, 2, 4, 3, 1, 0]
Run Code Online (Sandbox Code Playgroud)

现在我切换到收集相同的整数流:

IntStream.range(0,10).parallel().boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我得到了正确的结果:

ints ==> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

问题: 为什么两个并行执行产生不同的Collector结果?为什么产生正确的结果?

如果forEach产生随机结果,也Collector应该.我没有指定任何排序,我认为他在内部添加到我手动使用的列表forEach.由于他并行执行,因此他的add方法应该以未指定的顺序获取值.测试完成了JShell.

编辑:这里没有重复.我理解相关的问题.收集器为什么产生正确的结果?如果他将产生另一个随机结果,我不会问.

java parallel-processing java-8 java-stream

12
推荐指数
1
解决办法
439
查看次数

当使用Hibernate ORM时,我应该首先建模类图或DB图吗?

我是Java和Hibernate的新手.在工作中,我们正在使用Spring,Hibernate,JBOSS等开发一个中型的forWrocessing J2EE Web应用程序.使用Hibernate的正确方法是什么?我应该首先创建一个类图和使用hibernate到数据库表的映射,还是应该首先建模数据库表,然后将其映射到Hibernate实体?还是依赖?如果它取决于什么?这种方法中的任何一种方法都存在缺点吗?是否可以使用Hibernate 4将"任何"类图映射到数据库?

java orm hibernate class

10
推荐指数
1
解决办法
2982
查看次数

什么是jasperrepots-fonts jar以及如何使用它?

我正在评估JasperReports的报告生成.我在Windows和Linux之间的报表可移植性方面存在一些问题.我发现了一个(hacky)解决方案,使其跨平台工作.不过我想知道是什么jasperreports-fonts:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>5.6.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我看到它包含DejaVu Sans字体,但我不知道如何使用这个jar(我在网上什么也没发现),如果这将以优雅,简单的方式解决我的跨平台软件.

在此输入图像描述

你能告诉我更多关于这个罐子的信息吗?

java linux windows fonts jasper-reports

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

使用Java 8 Streams的Spring Data JPA存储库

假设我有以下存储库:

public interface UserRepository extends JpaRepository<User, Long> {

    @Query("select u from User u")
    Stream<User> streamAllPaged(Pageable pageable);
}
Run Code Online (Sandbox Code Playgroud)

我想进行搜索:

public Page<User> findAllUsers(Pageable page) {

    Page<User> page = null;
    try (Stream<User> users = userRepository.streamAllPaged(page)) {
            Set<User> users = users.filter(u -> user.getName().equals("foo"))
                    .collect(Collectors.toSet());
            //create page from set?
    }

}
Run Code Online (Sandbox Code Playgroud)

显然我可以使用子列表并手动插入页面大小等但我想应该有更"标准"的方法来做到这一点?

java spring java-8 spring-data spring-data-jpa

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

Java Spring如何在webapplicationinitializer中强制使用https ssl?

要在web.xml中强制https,我使用的是此代码段:

<security-constraint>
  <web-resource-collection>
      <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

在Spring Java Config中是否有相同的功能?我已经发现我需要一个ServletSecurityElement.但是我如何连接到其他人呢?

public class WebAppInitializer implements WebApplicationInitializer {
    @Override
    public void onStartup(ServletContext container) throws ServletException {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        container.addListener(new ContextLoaderListener(context));
        context.register(PersistenceJPAConfig.class);

        FilterRegistration filter = container.addFilter("wicket.myproject", WicketFilter.class);
        filter.setInitParameter("applicationClassName", WicketApplication.class.getName());
        filter.setInitParameter(WicketFilter.FILTER_MAPPING_PARAM, "/*");
        filter.addMappingForUrlPatterns(null, false, "/*");

        HttpConstraintElement forceHttpsConstraint = new HttpConstraintElement(ServletSecurity.TransportGuarantee.CONFIDENTIAL, "");
        ServletSecurityElement securityElement = new ServletSecurityElement(forceHttpsConstraint);
    }
}
Run Code Online (Sandbox Code Playgroud)

java https spring spring-java-config

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

Hibernate 4 - > 5迁移:NamingStrategy更改,找不到表

我想做的事

我正在尝试从WildFly 8.2.0迁移到WildFly 10.0.0,这意味着我已经(并希望)从Hibernate 4.3迁移到Hibernate 5.0.

建立

Java 8u40 
Spring 4.1.9 
SQL Server 2012
Wildfly 8.2.0 -> Wildfly 10.0.0 
Hibernate 4.3.6 -> Hibernate 5.0.7
Run Code Online (Sandbox Code Playgroud)

我已经阅读了迁移指南,并且我遇到了命名策略的变化.我在SO上已经 阅读了 很多 关于这个的问题,但是我看起来有点不同.Hibernate抱怨找不到表:

INFO [o.h.Version] HHH000412: Hibernate Core {5.0.7.Final}
INFO [o.h.cfg.Environment] HHH000206: hibernate.properties not found
INFO [o.h.cfg.Environment] HHH000021: Bytecode provider name : javassist
INFO [o.h.annotations.common.Version] HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
INFO [o.h.dialect.Dialect] HHH000400: Using dialect: org.hibernate.dialect.SQLServerDialect
INFO [o.h.envers.boot.internal.EnversServiceImpl] Envers integration enabled? : true
INFO [o.h.validator.internal.util.Version] HV000001: Hibernate Validator …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate wildfly hibernate-5.x

8
推荐指数
2
解决办法
5782
查看次数

Spring Framework Web应用程序的IDE是什么?

在我们公司,我们正在转向Java.我们希望使用Spring Framework开发Web应用程序.我们进行了为期4天的培训,培训师使用基于Eclipse的Springsource Tool Suite向我们展示了Java.但是,我以前使用NetBeans开发PHP应用程序.

与使用Springsource Tool Suite 2.7.0相比,使用NetBeans 7.0我会失去什么?是否真的值得使用专用的 Springsource工具套件开发Spring Framework Web应用程序,并考虑到我们是Java的新手?

更新 提供更多信息:我们希望使用以下技术: - Spring Framework 3 - JPA(Hibernate) - Apache Wicket - Maven

java eclipse ide spring netbeans

7
推荐指数
3
解决办法
8724
查看次数

如何在JPA(Spring Data JPA)中实现简单的全文搜索?

我正在使用JPA 2.1(Hibernate 4 as impl)和Spring Data JPA 1.9.0.我如何实现全文搜索?

我的方案如下.我有一个User实体,在UI上有一个显示大多数用户属性的表,我希望用户给文本框输入一个搜索词并搜索所有属性.

我看到有两个选项可以做到这一点:

  1. 从DB加载所有用户用户并使用Java过滤它们
  2. 用许多ORs和编写一个JPQL查询LIKE % :searchString %

选项1对性能不利,但写得很好.

选项2是在DB端执行的高性能,但编写起来很麻烦.

现在即时通过选项1,因为我需要将布尔值转换为"yes"/"no"并且还有一个配置文件枚举,我想通过它的字段描述而不是实际的枚举值进行搜索.

在用户实体中,我有一个方法,它返回我希望被空格分隔的所有字段:

   public String getSearchString(){
      return StringUtils.join(
              Arrays.asList(
                      login, 
                      firstName, 
                      lastName, 
                      email, 
                      active ? "yes" : "no", 
                      profile.getDescription())
              , " ");
   }
Run Code Online (Sandbox Code Playgroud)

在服务中我从DB加载所有用户并通过此搜索字符串过滤:

   @Override
   public List<User> getUsers(final String searchText) {
      final List<User> users = getUsers();
      if(StringUtils.isBlank(searchText)){
         return users;
      }
      CollectionUtils.filter(users, new Predicate<User>() {
         @Override
         public boolean evaluate(User object) {
            return StringUtils.containsIgnoreCase(object.getSearchString(), searchText);
         }
      }); …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa jpql spring-data-jpa

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