Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jul 19 07:02
    gfx commented #482
  • Jul 19 05:26
    phicdy opened #482
  • Feb 06 10:37
    zoff99 commented #481
  • Feb 06 10:37
    zoff99 commented #481
  • Feb 06 10:00
    zoff99 commented #481
  • Feb 06 02:45
    gfx commented #481
  • Feb 06 02:42
    gfx labeled #481
  • Feb 05 20:48
    zoff99 opened #481
  • Dec 09 2020 20:27
    zoff99 commented #480
  • Apr 13 2020 07:20
    gfx commented #480
  • Apr 13 2020 07:18
    zoff99 commented #480
  • Apr 13 2020 07:17
    zoff99 commented #480
  • Apr 13 2020 06:25
    gfx commented #480
  • Apr 13 2020 06:25

    gfx on master

    update to sqlcipher 4.3.0 set MIN_SDK_VERSION to 16 Merge pull request #480 from zo… (compare)

  • Apr 13 2020 06:25
    gfx closed #480
  • Apr 13 2020 06:24
    gfx commented #480
  • Apr 13 2020 06:18
    zoff99 commented #480
  • Apr 13 2020 06:18
    zoff99 synchronize #480
  • Apr 13 2020 01:59
    gfx commented #480
  • Apr 13 2020 01:58

    gfx on master

    fix error messages in build.gra… (compare)

FUJI Goro
@gfx
https://gitter.im/Android-Orma/Lobby のほうはwebhook設定してissue/prのupdateを流してますけどね。
webhookのあれこれがchatではなくactivityとして右カラムにくるのでslackのようにwebhookに邪魔されないのはgitterのイケてるところですね。
FUJI Goro
@gfx
意見希望: gfx/Android-Orma#397
Yuki312
@YukiMatsumura

お初, おじゃまします :bow:
indexまではいらないけどWhere句対象にしたいケースがあるのでAPI生えると助かります(扱うテーブルが小さい時とか)

ただ, indexを貼るまでもないケースでこれを使う時はsuppress warnしないとなんですよね...
indexは貼らないけどメソッドは生えるアノテーション実装とか?

FUJI Goro
@gfx
扱うテーブルが小さくてもindexは貼ったほうがいいと思うんですよねー。
ちなみにいまでも任意のhelperを生やすことはできます。 https://github.com/gfx/Android-Orma#how-to-control-generation-of-query-helpers
@Column(helpers = Column.Hepers.AUTO | Column.Helpers.CONDITION_EQ) など。
ただこれについてハマる人があまりにも多いので何か示唆はしたいなというのが一つ。
もうひとつはまあ、ちょっと試すのにいちいちindexつけたりはずしたりみたいなのはしたくないだろうなと。
本番のコードだったらテーブルが小さくてもindex貼るのをおすすめしますよ!
Yuki312
@YukiMatsumura

@Column(helpers = Column.Hepers.AUTO | Column.Helpers.CONDITION_EQ)

なるほど!これ知らなかったです :bow: ↑のケースだとこれで良さそうです。

本番のコードだったらテーブルが小さくてもindex貼るのをおすすめしますよ!

あらー、そうなんですね。
比較したことはないですが、indexつけたことによるオーバーヘッドとか気にしてました。
今度つけてみようかな :muscle:

FUJI Goro
@gfx
💪
Rafal Wachol
@charafau

こんにちは、最近ORMAを使い始めたけどリストモデルをマッピングやり方がわからなかったです。だから聞きます :)

class Item {
    @SerializedName("required_count")
    @Column
    int requiredCount;
    @SerializedName("available")
    @Column
    boolean available;
    @SerializedName("items")
    @Column
    List<ItemSubItem> items;  // これコンパイルできない

    public Item(){}

    // getters, setters
}

こんなクラスがあって List@Column つけてコンパイルエラーが出ます。ORMAでどうやってこんなことできますか? (ItemSubItem もORMAモデルです)

FUJI Goro
@gfx
こんにちは。
なるほど、まず ItemSubItem が何者かによります。JSONにシリアライズできるオブジェクトなのであれば、 @StaticTypeAdapter という仕組みでシリアライズ方法を自分で定義する必要があります。 https://github.com/gfx/Android-Orma#statictypeadapters-for-multiple-serializers-at-once
ItemSubItem がOrmaオブジェクトであれば、 has-many relation ということなので、ItemSubItemのほうに @Column Item parentItem のようなカラムをつくり、 Item のほうでは直接フィールドを定義せずに getItemSubItems() のようなメソッドを作ってください。 https://github.com/gfx/Android-Orma#has-many-associations-with-direct-associations
Rafal Wachol
@charafau
返事ありがとうございます。今パソコンの前にいないけど、帰ってきたら調べます 
FUJI Goro
@gfx
👍
Haruka Nakajima
@haru2036

はじめまして。
現在kotlinとRxJavaでorma v4.2.5を使っています。
ここで、例えばSleepというモデルにInsertをしようとした際に

prepareInsertIntoSleep().executeAsSingle(sleep)

としている場合、メインスレッドからこれを呼び出したときにsubscribeOn(Schedulers.io())をつけてもDatabaseAccessOnMainThreadExceptionが投げられてしまいます。
maskarade/Android-Orma#286
と関連しているのではないかと思ったのでそのissueに関連するPRで変更されているように

prepareInsertIntoSleepAsSingle().map { it.execute(sleep) }

としたらうまく行ったのですが、この方法は正しいでしょうか?
または最初のexecuteAsSingleをあとに付け足す方法でも通常はDatabaseAccessOnMainThreadExceptionは出ないのが普通でしょうか?

FUJI Goro
@gfx
そうですね、 prepareInsertIntoSleepAsSingle() を使う方法が正しいです!
prepareInsertInto* の時点でDBアクセスが必要なのでやむを得ないんですよね。
Haruka Nakajima
@haru2036
なるほど!以降そちらを使うようにします。ありがとうございます!
FUJI Goro
@gfx
よろしくお願いします :thumbsup:
funeasysoft
@funeasysoft
はじめまして。
現在androidアプリをorma v4.2.5を使わせていただき、開発しております。
db.sqliteファイルをサーバにバックアップする機能を実装したいのですが、
db.sqlite, db.sqlite-shm, db.sqlite-walに入ったデータをdb.sqliteに反映させるためには、
dbをcloseさせる必要があると考えています。
dbをcloseさせる方法はありますでしょうか? 宜しくお願い致します。
FUJI Goro
@gfx
こんにちは。SQLiteってcommitした時点で *.sqlite は確定しませんでしたっけ。 -shm と -wal は不要で、 .sqlite だけあればいいかなと思っているのですが。
一応、 orma.getConnection().close() でcloseはできますが、不要ならば特にやらなくてもいいと思います。
funeasysoft
@funeasysoft

早々のご回答ありがとうございます。
基本的に以下のように exexute() しているのですが、これではcommitにはならないのでしょうか?
開発中のDBをローカルにそれぞれファイルをおとして見てみましたが、db.sqliteのファイルサイズが極端に少なく、-shm と -walのファイルサイズ大きいようでした。また、db.sqlite単体では(sqlite管理ツール等で)中身を確認できませんでした。

orma.update[テーブル名]()
                            .idEq(id)
                            .[カラム名](1)
                            .execute();

また、 orma.getConnection().close() メソッドが見当たらないのですが、
privateメソッドなどで、利用できないものなのか、使い方が正しくないのかご教授頂けないでしょうか。
宜しくお願い致します。

FUJI Goro
@gfx
なるほど。となるとcloseしたほうがいいかもしれないですね。 orma.getConnection().close() をお使いください。
funeasysoft
@funeasysoft
OrmaDatabase.builder(context).name(DB_NAME).build().getConnection()までは参照できるのですが、
そちらから close()メソッド が参照できないため、closeできません。
ormaのversionによってはあるのでしょうか。
もう少し調べてみます。お忙しい中ご回答ありがとうございます。
FUJI Goro
@gfx
あれ、そうでしたっけ。ちょっとお待ちを。
FUJI Goro
@gfx
おっとすいません返事がおくれてしまった。
あ、いや、これはmasterだった。 4.x だと確かに公開してないですね。
5.x rcを使ってもらうか、5.x正規リリースをお待ちください。
5.x、rcとついてますが内部的に不安定ということはありませんので。
5.xの正規リリースを急ぎます…。
funeasysoft
@funeasysoft
ご丁寧にご教授ありがとうございます。5.x rc見てみようと思います。
ありがとうございました!
FUJI Goro
@gfx
👍