使用布尔值设置实体的字符串字段?
Setting a String field of an entity using a boolean?
以下是一个 Entity
命名的人:
@Entity
@Table(
name = "PERSON"
)
public class Person {
//other fields etc
@Column(
name = "PAID_IN_FULL",
nullable = false
)
private String paidInFull;
public void setPaidInFull(boolean paidInFull) {
this.paidInFull = paidInFull?"Y":"N";
}
}
使用上面的 setter,如果我要执行以下操作:
person.setPaidInFull(true);
将其设置为什么字符串值,是 "Y"
还是 "N"
?
paidInFull?"Y":"N";
如果说是另一种方式:
if (paidInFull)
return "Y";
else
return "N";
所以如果你要这样做
person.setPaidInFull(true);
this.paidInFull
将是 "Y".
这是一个完整的例子:
package nl.testing.startingpoint;
public class Main {
private static String paidInFull;
public static void main(String args[])
{
setPaidInFull(true);
System.out.println(paidInFull);
}
public static void setPaidInFull(boolean paidInFull) {
Main.paidInFull = (paidInFull) ? "Y" : "N";
}
}
您也可以尝试休眠 "yes_no" 类型。
import org.hibernate.annotations.Type;
@Entity
@Table(name = "PERSON")
public class Person {
//other fields etc
@Column(name = "PAID_IN_FULL", nullable = false)
@Type(type = "yes_no")
private Boolean paidInFull;
public void setPaidInFull(boolean paidInFull) {
this.paidInFull = paidInFull
}
}
以下是一个 Entity
命名的人:
@Entity
@Table(
name = "PERSON"
)
public class Person {
//other fields etc
@Column(
name = "PAID_IN_FULL",
nullable = false
)
private String paidInFull;
public void setPaidInFull(boolean paidInFull) {
this.paidInFull = paidInFull?"Y":"N";
}
}
使用上面的 setter,如果我要执行以下操作:
person.setPaidInFull(true);
将其设置为什么字符串值,是 "Y"
还是 "N"
?
paidInFull?"Y":"N";
如果说是另一种方式:
if (paidInFull)
return "Y";
else
return "N";
所以如果你要这样做
person.setPaidInFull(true);
this.paidInFull
将是 "Y".
这是一个完整的例子:
package nl.testing.startingpoint;
public class Main {
private static String paidInFull;
public static void main(String args[])
{
setPaidInFull(true);
System.out.println(paidInFull);
}
public static void setPaidInFull(boolean paidInFull) {
Main.paidInFull = (paidInFull) ? "Y" : "N";
}
}
您也可以尝试休眠 "yes_no" 类型。
import org.hibernate.annotations.Type;
@Entity
@Table(name = "PERSON")
public class Person {
//other fields etc
@Column(name = "PAID_IN_FULL", nullable = false)
@Type(type = "yes_no")
private Boolean paidInFull;
public void setPaidInFull(boolean paidInFull) {
this.paidInFull = paidInFull
}
}