0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IsarではEmbbed Objectの名前をカスタマイズできない

Posted at

はじめに

Isarはflutterのデータベースパッケージのひとつです。
Hiveの後継にあたり、処理速度の速さや豊富なAPIに強みがあります。

Emmbed Objectとは

Isarコレクションは、bool,String等の基本的な型のほかに、ネストされたオブジェクトをフィールドに持つことができます。
例えば以下のようなものです。

@collection
class Email {
  Id? id;

  String? title;

  Recepient? recipient;
}

@embedded
class Recepient {
  String? name;

  String? address;
}

Nameアノテーションとは

Isarコレクションは、Nameアノテーションを用いてコレクション・フィールドの名前を設定することができます。
例えば以下のようなものです。

@collection
@Name("SpecialEmail")
class Email {
  Id? id;

  String? title;
}

Emmbed ObjectにNameアノテーションは使えない

さて、Emmbed ObjectにNameアノテーションをつけるとどうなるでしょうか?
コード生成には成功しますが、新規のIsarインスタンスを作成した際に、以下のようなエラーが発生します。

IsarError: SchemaError: Target collection does not exist.

このメッセージからはEmmbed Objectが理由でエラーが発生していること読み取れないため、注意が必要です。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?