4

Ich habe Schwierigkeiten mit booleans in Siena 2.0.7 und Play 1.2.4 zu arbeiten.Siena/Play/GAE analysiert boolesches Feld falsch: 0 = true

Im Konstruktor meiner Klasse habe ich den Booleschen Wert auf FALSE gesetzt. Dann speichere ich das Objekt. Im Datastore-Viewer kann ich das boolesche Feld als 0 gespeichert sehen.

Wenn ich diese Zeile aus der Datenbank abrufe, wird das boolesche Feld als TRUE analysiert. Ich bin verloren, ich hoffe du kannst helfen!

Klasse:

@Entity 
public class CMessage extends EnhancedModel 
{ 
    public CMessage() { 
     this.isProcessed = false; 
    } 

public CMessage(String bridgeId) { 
    this.bridgeId = bridgeId; 

    // set createdDate & expireDate 
    this.createdDate = new Date(); 
    this.isProcessed = false; 
} 

@Id(Generator.AUTO_INCREMENT) 
public Long id; 

@NotNull 
public String bridgeId; 

@NotNull 
@DateTime 
public Date createdDate; 

@NotNull 
public boolean isProcessed; 

} 

Test:

CMessage msg = new models.CMessage("bridge"); 
    Logger.info("saved isProcessed = %s", msg.isProcessed); // always gives false 
    msg.save(); 

    Logger.info("saved isProcessed = %s", msg.isProcessed); // always gives false 

    CMessage get = (CMessage) CMessage.findAll().get(0); 
    Logger.info("got isProcessed = %s", get.isProcessed); // always gives true 
    assertEquals(false, get.isProcessed); 

Anmerkung: Ich habe nicht auf GAE getestet selbst, nur auf meiner Dev-Maschine. Vielleicht gae Datenspeicher macht es richtig ...

Antwort

4

scheint ein Fehler in der aktuellen Version von Siena zu sein. https://github.com/mandubian/siena/pull/18

+0

hmm ich alle Felder meiner boolean jetzt ersetzt mit int fields Hoffe, der Fehler wird bald behoben – Lukasvan3L

+0

Wie können wir sagen, in welcher Modulversion sich diese Änderung befindet? Ich habe gerade mit 2.0.7 getestet, aber es hatte das gleiche Problem. – jcalfee314

1

Es ist ziemlich komisch, dass Sie eine True ...
Können Sie versuchen, mit einem Booleschen anstelle eines booleschen, um zu sehen, ob Sie das gleiche Verhalten haben?
Dank

+1

versucht, dass, ohne Erfolg :(Noch als Ausgabe „True“ gibt – Lukasvan3L