2016-11-03 2 views
0

私はMongoデータベースに保存Spring &を使用して特定の入力に基づいて追加をしようとしています。値を保存できませんMongoRepositoryを使用してSpringからMongo DBに

私は複数の追加を行う必要があるとして:

1.So一つの方法は、手動で値を追加し、Beanにそれらを設定し、それをデータベースに保存することです。

OR

2.Justは、必要なときに取り出す&フィールドのゲッターでそれらを追加します。

第二のアプローチで試してみました

、私は

サンプルコードを見つけてくださいにMongoDBにデータを保存することはできませんよ: -

Beanクラス:

:MongoRepositoryを拡張

class Addition { 

    private double a; 
    private double b; 
    private double c; 
    private double d; 

    //getters and setters of a & b; 

    //getter of c; 
    public double getC() { 
     return a + b; 
    } 

    //getter of d; 
    public double getD() { 
     return getC() + a; 
    } 

} 

インタフェース

@Repository 
public interface AdditionRepository extends MongoRepository<Addition, String> { 

} 

コーリングクラス:

モンゴDBで
@Controller 
public class Add { 

    @Autowired 
    private AdditionRepository additionRepository; 

    @RequestMapping(value = "/add", method = RequestMethod.GET) 
     public void addNumbers(){ 
      Addition addition = new Addition(); 
      addition.setA(1.0); 
      addition.setB(2.0); 
      System.out.println(addition.getC()); //able to print expected value 
      System.out.println(addition.getD()); //able to print expected value 

      additionRepository.save(addition); 

    } 

} 

保存したデータ:

{ 
    "_id" : ObjectId("581b229bbcf8c006a0eda4b2"), 
    "a" : 1.0, 
    "b" : 2.0, 
    "c" : 0.0, 
    "d" : 0.0, 
} 

誰も私が間違っているのところ、私に知らせて、またはこれを行う他の方法てくださいすることができます。

答えて

0

ゲッターは、実際には持続性のために使用されません。フレームワークではなく、フィールドを使用している: 「オブジェクトのフィールドは、文書内のフィールドにしてから変換するために使用されている」 http://docs.spring.io/spring-data/mongodb/docs/1.6.3.RELEASE/reference/html/#mapping-conventions

をあなたのケースでは、計算の世話をするコンストラクタを作成することができます。

class Addition { 

    private double a; 
    private double b; 
    private double c; 
    private double d; 

    public Addition(double a, double b){ 
     this.a = a; 
     this.b = b;   
     this.c = a+b; 
     this.d = this.c + a; 
    } 
} 
+0

お返事をありがとう、しかし、私の現在のコードでは、私は豆で50個のなどのフィールドを持っているので、コンストラクタで50個のこのようなフィールドを初期化し、それらに異なる算術計算を実行するので、それは良いアプローチでしょうか? –

関連する問題