2017-08-13 5 views
4

protobuf3を使って定義したデータを永続化する正しい方法は何ですか?私はgolangとJavaを使用しています。どちらもORMのサポートを受けています。 JavaでHibernateとgolangとgormです。両方の場所私は対応するエンティティモデルに生成コードを変換する必要があります。私は、ORMが理解できるように、同じオブジェクト構造を維持するためには、より多くの痛みを感じています。 protobufオブジェクトと一緒に使用できるデータベースはありますか?あるいは、私はprotobuf自体のオブジェクト間の関係を定義することができます。Protobufメッセージをデータベースに保存する

本当にありがとうございます。

答えて

1

あなたのORMは定義によってオブジェクトを扱っています。ネットワーク上のシリアライゼーションを知らないでください。 protobufメッセージをORMが使用されているオブジェクトにデシリアライズし、永続化させることをお勧めします。永続性層とネットワークプロトコルを結合する理由はありません。

JPAを取り除いてドキュメントベースのソリューションを使用する場合は、protobufのシリアル化を直接格納することが理にかなっています。

JPAがあなたに提供する金額を決定する必要があります。

1

この問題の解決方法は簡単ではありません。

Protobuf 3標準のメッセージです。メッセージをJSONにシリアライズすると、そのメッセージをデータベースに格納するための複数のオプションがあります。

次(と、より多くの)データベースはJSONデータを格納することができます

  • MariaDB
  • PostgreSQLの
  • MongoDBの
+1

あなたはこの方向に行けばORMを使用する理由はありません。既に指摘したように、これはNoSQL文書永続化テクノロジーにとっては完璧ですが、Javaオブジェクトを使用するJPA永続性についてはまったく意味がありません。 – duffymo

+0

@duffymoメッセージがデータベースに格納されている唯一のオブジェクトである限り、あなたは正しいです。 –

関連する問題