3

私のサーバー側コードはDartで実行され、現在redis_clientを介してデータ ストアとしてRedisを使用しています。

ほとんどの場合、整数や文字列などのプリミティブ データ型を保持しています。ただし、 Userなどのビジネス オブジェクトもいくつかあり、理想的にはそれらも Redis に格納したいと考えています。

もちろん、Redis はキーと値のストアであり、MongoDB のような本格的なドキュメント データベースではありません。そこで、独自のシリアライゼーションと永続化ロジックを書き始めました。たとえば、Userの単純なゲッターです。

  import 'dart:convert';

  ...

  Future<User> GetUser(String userGuid)
  {
    var userKey = "userGuid:" + userGuid.toString();
    return redisClient.get(userKey).then((String value) {
      return new User.fromJSON(value);      
    });      
  }

すべてのビジネス エンティティの永続化ロジック全体を手作業で作成し続ける前に、 redis_orm (Ruby)など、知っておくべき何らかの種類の Redis/Dart データ アクセス パッケージが既に存在しますか?

そうでない場合は、おそらく自分で書きます。

(まあ、Redis != リレーショナルなので、ORM と呼びたくありませんが、事実上、それが私が探しているものです)

4

1 に答える 1

2

仕事で Java Hibernate + Dart を使用しています。

このクライアント用のオープンソース ライブラリを作成しました: https://github.com/frankpepermans/dorm

サーバー側の実装はオープン ソースではありませんが、Hibernate は必須ではなく、どの ORM タイプでも可能です。クライアントは JSON を介して通信するため、JSON データを処理し、循環参照を処理/受信できるアダプターが必要です ( Dorm、JSON 構造内でポインターを使用して循環参照を指定できます)。

サーバーは、エンティティを表す Dart クラス ファイルも生成する必要があります。

ただし、次の例を使用できます: - 複合キー - エンティティの継承 - データ型のカスタム処理 (つまり、DateTime) - カスタム データ型 (つまり、すべてが Observable であり、リストはデフォルトで ObservableList ですが、デシリアライザーにカスタム List を使用するように指示できます)必要に応じて入力します) - 注釈をサポートします

于 2014-02-10T17:24:27.693 に答える