小编And*_*kyi的帖子

Java 8 Spring Data JPA参数绑定

在我的@Repository接口中,我使用包含参数(addressType)的JPQL @Query创建了自定义查找方法.

from Address a where a.addressType = :addressType

在方法中,我没有在参数上指定@Param("addressType").所以我得到了

java.lang.IllegalArgumentException:参数绑定的名称不能为null或为空!对于命名参数,您需要在Java版本<8上使用@Param作为查询方法参数.

好的,这很清楚,但我使用的是Java 8.那么Java 8的特殊之处在哪里呢?

jpa jpql java-8 spring-data-jpa

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

在java.time.LocalTime之间(第二天)

请建议是否有API支持来确定我的时间是在两个LocalTime实例之间,还是建议采用不同的方法.

我有这个实体:

 class Place {
   LocalTime startDay;
   LocalTime endDay;
 }
Run Code Online (Sandbox Code Playgroud)

它存储工作日的开始和结束时间,即从'9:00'到'17:00',或者从'22:00'到'5:00'的夜总会.

我需要实现一个Place.isOpen()方法来确定该地点是否在给定时间打开.

这里简单isBefore/ isAfter不起作用,因为我们还需要确定结束时间是否在第二天.

当然,我们可以比较开始和结束时间并做出决定,但我想要一些没有额外逻辑的东西,只需要一个简单的between()调用.如果LocalTime不足以达到此目的,请另外建议.

java localtime java-8 java-time

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

Lombok @Wither/@With Inheritance(超/子类)

请建议在应用继承时如何使用@Wither/ 。@With

我有一个抽象类Parent和具体类ChildChild应该是不可变的。两者都戴上@Wither会给我两个错误:

  • 构造函数 Child(String) 未定义
  • Child 类型必须实现继承的抽象方法 Parent.withA(String)
@Value
@Wither
@NonFinal
@SuperBuilder
abstract class Parent {
    String a;
}

@Value
@Wither
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
class Child extends Parent {
    String b;
}
Run Code Online (Sandbox Code Playgroud)

我很乐意删除@Wither并使用构建器方法,但我正在重构一个公共库(尝试优化模型类)并且我不希望我的客户端出现编译错误。

我还发现这个问题解释了第二个错误。但意图的逻辑并不明确https://github.com/rzwitserloot/lombok/issues/945

java lombok

7
推荐指数
1
解决办法
2686
查看次数

Jackson Java 8 DateTime序列化

Jackson运行java.time.Instant,默认情况下启用WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS(READ_以及). 杰克逊-数据类型- jsr310

它像这样生成JSON

{ "createDate":1421261297.356000000, "modifyDate":1421261297.356000000 }

在JavaScript中,从传统的millis时间戳(而不是像上面的秒/纳米)那样获得Date要容易得多,比如new Date(1421261297356).

我认为应该有一些理由默认采用纳米方法,那么这是什么原因呢?

timestamp milliseconds java-8 jackson-modules java-time

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