当前位置: 首页 > 知识库问答 >
问题:

遍历存储库以访问某些信息

隆功
2023-03-14

问题是访问过期列。我应该做什么来访问数据库中每个许可证的到期日期,因为显然我这样做是不准确的。我可能会感到困惑,因为您需要通过存储库从表中获取所有项,但是对于每个项,您都使用模型来获取访问过期日期。

是否有更好的方法来遍历存储库中的项列表并访问特定的列?或者有人能轻松地帮我修复我目前拥有的代码吗?

List<License> licenses=licenseRepository.findAll();
for(Object lic:licenses){

    if (lic.expiration.minusDays(30) == LocalDate.now()) {
        try {
            emailService.sendSimpleMessage(mail, licenseModel);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

共有1个答案

容寒
2023-03-14

遍历存储库中的项列表并访问特定列的更好方法

没有。我们无法在这一点上帮助您,因为您没有显示或解释您的存储库代码。

我可以向您展示正确的JDBC4.2代码,从类似于SQL标准date类型的数据库列中检索仅限日期的值。

LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;
    null
  • 如果两个引用都指向同一个对象,则指向内存中的同一个位置。
    (一般来说,大多数应用程序都很少需要这样做。所以一般不要对对象使用==。)
  • 如果两个原语(intboolean等)具有等效值。

所以这两者之间的效果是显著不同的。一个是比较您关心的数据的值(在原语中)。另一种方法比较一对引用(指针)的内存位置(基本上是数量),而不考虑您关心的数据(在对象中)。

当比较两个对象的值时,调用一个方法。对于localdate,则为isequal。您还可以在时间上与isbefore&isafter进行比较。

所以您的代码:

if ( lic.expiration.minusDays( 30 ) == LocalDate.now() ) { … }

…应该是…

if ( lic.expiration.minusDays( 30 ).isEqual( LocalDate.now() ) ) { … }

我会用自己的代码分解。

LocalDate today = LocalDate.now() ;
LocalDate thirtyDaysBeforeExpiration = lic.expiration.minusDays( 30 ) ;
if ( thirtyDaysBeforeExpiration.isEqual( today ) ) { … }
ZoneId z = ZoneId.of( "America/Montreal" ) ;  
LocalDate today = LocalDate.now( z ) ;
ZoneId z = ZoneId.systemDefault() ;  // Get JVM’s current default time zone.
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
LocalDate today = LocalDate.now( z ) ;
LocalDate thirtyDaysBeforeExpiration = lic.expiration.minusDays( 30 ) ;
if ( then.isEqual( today ) ) { … }

Java.time框架内置在Java8和更高版本中。这些类取代了麻烦的旧的遗留日期时间类,如java.util.dateCalendar、&SimpleDateFormat

现在处于维护模式的Joda-Time项目建议迁移到java.Time类。

要了解更多信息,请参阅Oracle教程。并搜索堆栈溢出的许多例子和解释。规范是JSR310。

    null
  • 大部分Java.time功能在threeten-backport中回移植到Java6和7。
  • java.time类的Android bundle实现的更新版本。
  • 对于早期的Android(<26),ThreeTenABP项目适应了ThreeTen-Backport(上面提到)。查看如何使用threetenabp….

ThreeTen-Extra项目使用额外的类扩展了java.time。这个项目是将来可能添加到java.time的试验场。您可以在这里找到一些有用的类,如intervalYearWeekYearQuarter等。

 类似资料:
  • 我需要从消费者内部访问saga存储库,以读取与正在消费的消息相关的saga的当前状态。 场景:我有一个外部服务,当这个服务使用来自传奇的事件时,我想看看传奇是否仍然处于正确的状态,因为如果同时传奇改变了状态,消费者必须跳过事件。 如何:我当然可以通过使用它的本机框架来查询选择的saga存储库实现,但是我想使用一个抽象,一个接口,从消费者内部加载saga状态,以便将来能够切换到不同的存储库实现。 感

  • 问题内容: 我正在尝试遍历文件夹和所有子文件夹以查找某些文件类型的所有文件-例如,仅.mp4,.avi,.wmv。 这是我现在拥有的,它遍历所有文件类型: 谢谢! 问题答案: 您可以使用which采取路径并将文件扩展名从其末尾分割:

  • 谷歌(遗憾地)计划破坏存储权限,使应用程序无法使用标准文件API(和文件路径)访问文件系统。许多人反对它,因为它改变了应用程序访问存储的方式,在很多方面,它是一个受限的API。 因此,如果我们希望处理各种存储卷并访问其中的所有文件,我们将需要在未来的Android版本上完全使用SAF(存储访问框架)(在Android Q上,我们至少可以暂时使用一个标志来使用正常的存储权限)。 例如,假设您想创建一

  • 我没有找到任何关于在前端端实现逻辑来管理Azure密钥库的可能性的信息。同时,我创建了一个Node JS服务器项目使用ENV来管理Azure Key Vault,它工作成功,但我想在我的Angular应用程序中得到同样的效果。

  • 不同的业务应用场景,会有完全不同的非法终端控制策略,常见的限制策略有终端 IP 、访问域名端口,这些可以通过防火墙等很多成熟手段完成。可也有一些特定限制策略,例如特定 cookie、url、location,甚至请求 body 包含有特殊内容,这种情况下普通防火墙就比较难限制。 Nginx 是 HTTP 7 层协议的实现者,相对普通防火墙从通讯协议有自己的弱势,同等的配置下的性能表现绝对远不如防火

  • 同一空间/存储库中机密的逻辑分组 HSM的可能性 日志记录/审核 检索/更改机密的一个位置,许多应用程序可能依赖该位置而不触及应用程序。 我不知道如何在我的Spring Boot应用程序中处理存储库访问。当我使用azure-key-vault spring boot Starter时,我必须设置Applications.Properties中的访问权限,如本教程:如何使用spring boot S