4

Siena 2.0.7とPlay 1.2.4でブーリアンを扱うのに苦労しています。Siena/Play/GAEがブールフィールドを正しく解析しない0 = true

私のクラスのコンストラクタで、ブール値をFALSEに設定しました。次にオブジェクトを保存します。データストアビューアでは、ブール値フィールドが0として保存されているのがわかります。

データベースからそのローを取得すると、ブールフィールドはTRUEとして解析されます。私は失われている、あなたが助けることを願って!

クラス:

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

} 

テスト:

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); 

注:私は私のdevのマシン上で、GAE自体にテストしていません。たぶん、GAEデータストアには...右、あなたが同じ動作を持っているかどうかを確認するために、ブールの代わりに、ブールと試みることができる
それはあなたが真得ることは非常に奇妙な

答えて

4

は、シエナの現在のバージョンのバグであるように思わ: https://github.com/mandubian/siena/pull/18

+0

うーん、私は今と私のすべてのブールフィールドを置き換えます。 – Lukasvan3L

+0

この変更がどのモジュールバージョンにあるのかを私はどのように知ることができますか?私は2.0.7でテストしましたが、同じ問題がありました。 – jcalfee314

1

を...それを得るのでしょうか?
おかげ

+1

は無駄に:(それでも、出力として「真」を与える、という試みた – Lukasvan3L

関連する問題