有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用布尔值设置实体的字符串字段?

以下是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"


共 (2) 个答案

  1. # 1 楼答案

    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";
        }
    }
    
  2. # 2 楼答案

    您也可以尝试hibernate“yes\u 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
         }
    
    }
    

    请参阅https://dzone.com/articles/mapping-boolean-y-or-n-using