问题描述
|
我有一个名为\“ Scheduler \”的类,它具有7个布尔值字段。我想在休眠中编写一个约束,以检查至少一个布尔字段是否为真。
这是\“ Scheduler \”类。
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() {
}
}
谁能帮我写上面提到的约束。
谢谢!!!!!!!!!
解决方法
这很复杂,因为您使用的是布尔值而不是原始的布尔值,这会产生空指针异常的风险。
为了简化逻辑,我将修改每个字段声明以将其初始化为false。正如您将它们注释为“ 1”一样,我的假设是这将与您现有的业务逻辑一起使用。
如果这样做,使用
||
可以很简单地实现对至少一个的验证。
public boolean validateAtLeastOneIsTrue() {
return getsMondays() || getsTuesdays() || getsWednesdays()
|| getsThursdays() || getsFridays() || getsSaturdays()
|| getsSundays();
}
,建议您在不知道您正在使用的确切域的情况下,使用诸如Calendar之类的时间数据类型。这将允许您在一周的当前日期进行简单查找。这也使代码更易于维护