質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Play Framework 2

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

Q&A

0回答

2062閲覧

【PlayFramework 2.5】複数のデータベースに保存をしたい

sequence

総合スコア29

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Play Framework 2

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

0グッド

0クリップ

投稿2017/02/23 01:08

やりたいこと

MySQLで2つのデータベースが存在しており、
どちらのデータベースにも同じカラムでデータが入っております。
データを保存するときにどちらのデータベースに対しても保存をしたいです。

現状

データベースは以下のようにapplication.confで設定しております。

db{ first.driver=com.mysql.jdbc.Driver first.url="jdbc:mysql://localhost/first" first.username=root first.password=password second.driver=com.mysql.jdbc.Driver second.url="jdbc:mysql://localhost/second" second.username=root second.password=password }

2つのデータベースの使い分けは以下のように行っております

public class Model extends com.avaje.ebean.Model { public static String firstServer = "first"; public static String secondServer = "second"; public static String getField() { return firstServer; } public static EbeanServer db() { return Ebean.getServer(Server); } public void markAsDirty() { db().markAsDirty(this); } public void markPropertyUnset(String propertyName) { ((EntityBean) this)._ebean_getIntercept().setPropertyLoaded(propertyName, false); } public void save() { db().save(this); } public void update() { db().update(this); } public void insert() { db().insert(this); } public boolean delete() { return db().delete(this); } public void update(String server) { db(server).update(this); } public void insert(String server) { db(server).insert(this); } public boolean delete(String server) { return db(server).delete(this); } public void refresh() { db().refresh(this); } }
public class CareerModel extends Model { public static String secondServer = "second"; static { Model.secondServer = secondServer; } }

データを保存する時のControllerは以下のようになります。(簡易版)

public Result registration() { User user = formFactory.form().bindFromRequest(); user.save(); return ok(...); }

この時にUserのModelで以下のようにOverrideしております。
このようにすることで、両方のデータベースに保存できるのではないかと考えております。
今回の場合、firstには保存されますが、secondには保存がされません。
尚、firstの一部を削除するとsecondにも保存はされております。

public class User extends Model{ @Override public void save(){ db("first").save(this); db("second").save(this); } }

どなたか原因がわかる方、ご教授の程、宜しく御願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問