小编Moh*_*aan的帖子

是否可以在@RequestParam 中有条件地分配Required 的值?

我的控制器中有 2 个 @RequestParam 参数。我想根据条件设置两个参数的必需值。条件可能是,如果传递了一个参数,则必须传递另一个。因此,将 other 的 required 设置为 true,反之亦然。否则,如果没有传递任何参数,则将两者都设置为 false。

@RestController
public class TestController {

@GetMapping("/test")
public void test(@RequestParam(value = "a", required = (b !=null) String a, 
@RequestParam(value = "b", required = (a !=null) )  String b,) {
     {

     }

}
Run Code Online (Sandbox Code Playgroud)

在@RequestParam() 中使用变量名的语法是错误的,但我想解释一下我想要什么。

java rest spring spring-boot

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

如何有效地比较同一类的两个对象并检查哪些字段不同?

我想编写一个通用函数,它接受同一实体类的两个对象并比较不同的字段,并返回随时间对特定字段所做的所有更改的列表。

许多实体类之一是 Member,如下所示

public class Member {
    String firstName;
    String lastName;
    String driverLicenseNumber;
    Integer age;
    LocalDateTime timestamp;
}
Run Code Online (Sandbox Code Playgroud)

在数据库中,我有一个名为 member_audit 的表,每当使用触发器在成员表中发生更改时,该表都会填充旧数据(对于其他实体也类似)。

我要返回的每个实体的资源列表类似于

public class MemberAuditsResource {
    private String field;
    private LocalDateTime on;
    private String changeType;
    private String oldValue;
    private String newValue;
}
Run Code Online (Sandbox Code Playgroud)

我只能想到像这样为每个实体分别编写一个函数

private List<MembeAuditsResource> memberCompare(Member obj1, Member obj2) {

    //Compare every field in both the objects using if else and populate the resource.

}
Run Code Online (Sandbox Code Playgroud)

然后调用上面的函数来比较entity_audit表中的每对记录。代码将非常大,无法比较每个字段并乘以不同的实体。有没有更好、更有效的方法呢?

java spring java-8 spring-boot

3
推荐指数
1
解决办法
5095
查看次数

如何获取即将到来的特定时间的java.time.LocalDateTime对象?

我有一个当前java.time.LocalDateTime的对象。是否有一种简单的方法来获取即将到来的特定时间的LocalDateTime对象?假设当前日期和时间是17/10/2019 8.00pm。下一个凌晨5.00的即将发布日期为18/10/2019。假设当前日期和时间是17/10/2019 2.00 am,那么下一个5.00 am的即将到来的日期将是17/10/2019本身。

如何以简单的方式实现这一目标?是否有特定的方法?

java

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

标签 统计

java ×3

spring ×2

spring-boot ×2

java-8 ×1

rest ×1