在使用 Drools 5.5 final 比较字符串值字段时,我遇到了一些令人费解的问题。
本质上,我试图找出是否有一对同名的人。Person 类如下所示:
public class Person {
private String name;
public String getName() { return name; }
public void setName(String n) { this.name = n; }
public Person(String name) { this.name = name;}
}
Run Code Online (Sandbox Code Playgroud)
我尝试触发的规则是:
rule "uniquePersonName"
when
$p1: Person($n1: name)
$p2: Person(this != $p1, name == $n1)
then
System.out.println("Duplicated person name found : " + $n1 + " " + $p2.getName());
end
Run Code Online (Sandbox Code Playgroud)
但它从未被触发。但是,如果我将其更改为:
when
$p1: Person($n1: name)
$p2: Person(this != $p1, name != $n1)
Run Code Online (Sandbox Code Playgroud)
该系统按预期工作,换言之,它会找到所有具有不同姓名的人的配对。 …
我正在使用 PostgreSQL 和 PlayFramework,我需要将 an 转换Option[String]为 aTimestamp以执行我的查询。
我的Option[String]日期格式如下:2016/07/26
时间戳的格式为:2016-07-26
我知道我可以添加 to_stimetamp(myDate, 'YYYY-MM-DD')到我的查询中,但我不想使用它(实际上我不知道以后是否会使用 MySQL 或 PostgreSQL,因为 MySQL 中不存在该函数)
那我该怎么办呢?