我是querydsl的新手,也许我某种程度上想念这个概念。 我想做的是获取所有对象,这些对象的名称以“ He”开头,或者生日已过,或者地址的街道以“ ge”开头。
在此处使用代码段时,我只会得到与第三个条件(person.adresse.strasse)匹配的人员对象。第一个zwo条件被完全忽略。 如果我注释掉第三个条件,则会得到两个第一个条件(person.name machtes或person.birthday.before)匹配的结果。
我在做什么错?我必须加入联接吗?
List<Person> persons = query.select( person )
.from( person )
.where(
person.name.startsWith( "He" )
.or( person.birthday.before( new Date( System.currentTimeMillis() ) )
.or( person.adresse.strasse.startsWithIgnoreCase( "ge" ) ) )
)
.fetch();
答案 0 :(得分:0)
您的括号数字错误。
您无意中将第三个or
嵌套在第二个or
中,这就是为什么在注释第三个List<Person> persons = query.select( person )
.from( person )
.where(
person.name.startsWith("He")
.or(person.birthday.before(new Date(System.currentTimeMillis())))
.or(person.adresse.strasse.startsWithIgnoreCase("ge"))
)
.fetch();
时会得到正确的结果。
尝试一下:
let session = AVAudioSession.sharedInstance()
do
{
try session.overrideOutputAudioPort(AVAudioSessionPortOverride.none)
try session.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .allowBluetooth)
try session.overrideOutputAudioPort(AVAudioSessionPortOverride.init(rawValue: AVAudioSessionCategoryOptions.allowBluetooth.rawValue)!)
try session.setActive(true)
}
catch let error {
display_alert(msg_title: "Error", msg_desc: error.localizedDescription, action_title: "OK")
}
应该可以。