java - java中的比较器和可比较的负面场景

标签 java hibernate web-services collections

我正在使用 java 实现网络服务。 在这个实现中有以下步骤

1) 使用 hibernate 获取值到数据库中。

2) 获取存储在类 bean 列表类型中的值

List<IdentityDocArchive> resultList = q.getResultList();  

3) 然后我对最后更新日期进行排序

 Collections.sort(identityDocList, new Comparator<IdentityDocArchive>() {
            DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
            @Override
            public int compare(IdentityDocArchive o1, IdentityDocArchive o2) {
            try {
                  return f.parse(o2.getLastUpdtDt().toString()).compareTo(f.parse(o1.getLastUpdtDt().toString()));
              } catch (ParseException e) {
                  LOGGER.warning("Failed To Parsing string to date ".concat(e.getMessage()));
                  throw new IllegalArgumentException(e);
              }
            }
        });

4) 现在这个列表值存储到另一个列表中

我的问题是,如果不是更好的方法,那是正确的实现方法。

最佳答案

您使用 Hibernate,因此您还应该使用 hibernate/JPA 来对数据进行排序。通过 named query order by ... 或通过 CriteriaQuery.orderBy(...) . 您可能还想查看 Java EE persistence tutorial为此。

您也可以使用Collections.sort 对其进行手动 排序,但这样您就完成了数据库的预期工作。 (免责声明:您当然应该相应地设置您的数据库:索引等)

关于java - java中的比较器和可比较的负面场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41958261/

相关文章:

java - 在运行时更改 WebService 端点地址

java - JSF 链接到外部文件

java - 使用多个着色器

java - 比较两个 JSON

web-services - 服务器通过 HTTPS 传输数据的重量有多大?

c# - 如何使用本地 WSDL 文件中的 Web 服务?

java - 在 Java 中操作二维数组

java - 将 POJO 上传到 JPA 实体类

java.lang.NoClassDefFoundError : org/hibernate/boot/MetadataBuilder 错误

hibernate - 非空属性引用一个 transient 值-必须在当前操作之前保存 transient 实例