0

我有一个名为“Scheduler”的类,它有 7 个布尔字段。我想在休眠中编写一个约束来检查至少一个布尔字段是否为真。

这是“调度程序”类。

public class Scheduler {

private String description;

@NotNull
private Boolean sMondays;

@NotNull
private Boolean sTuesdays;

@NotNull
private Boolean sWednesdays;

@NotNull
private Boolean sThursdays;

@NotNull
private Boolean sFridays;

@NotNull
private Boolean sSaturdays;

@NotNull
private Boolean sSundays;

public Scheduler() {

}
}

谁能帮我写下提到的约束。

谢谢!!!!!!!!!

4

2 回答 2

1

这很复杂,因为您使用的是布尔值而不是原始布尔值,这会产生空指针异常的风险。

为了简化逻辑,我将修改每个字段声明以将其初始化为 false。正如您将它们注释为@NotNull,我的假设是这将适用于您现有的业务逻辑。

如果你这样做,你对至少一个的验证是真的很简单,使用||

public boolean validateAtLeastOneIsTrue() {
    return getsMondays() || getsTuesdays() || getsWednesdays()
    || getsThursdays() || getsFridays() || getsSaturdays()
    || getsSundays();
}
于 2011-05-25T23:27:12.780 回答
0

在不知道您正在工作的确切域的情况下,我建议使用时间数据类型,例如日历。这将允许您在一周的当前日期进行简单的查找。它还使代码更易于维护

于 2011-05-25T23:33:11.567 回答