2016-06-28 35 views
2

Das Folgende ist ein Entity namens Person:Setzen eines String-Feldes einer Entität mit einem booleschen?

@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"; 
    } 

} 

die Setter oben verwenden, wenn ich folgendes tun sollten: das Set wäre es

person.setPaidInFull(true); 

Welche Zeichenfolge-Wert, wäre es "Y" sein oder "N"?

+0

Haben Sie es versucht? – marthursson

Antwort

1
paidInFull?"Y":"N"; 

ist ein weiterer Weg, wenn sagen:

if (paidInFull) 
    return "Y"; 
else 
    return "N"; 

Also, wenn Sie

person.setPaidInFull(true); 

this.paidInFull täte wäre "Y". Hier

ist ein komplettes Beispiel:

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"; 
    } 
} 
+0

Vielen Dank, also setzen wir den Wert in der Datenbank auf den String-Wert von "Y"? – java123999

+0

Ja, wenn Ihr Datenbanktyp einen String akzeptiert, der (NVARCHAR usw.) – Igoranze

1

Sie auch die Hibernate "yes_no" Art versuchen könnte.

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 
    } 

} 

Bitte beziehen Sie sich auf https://dzone.com/articles/mapping-boolean-y-or-n-using.