質問編集履歴

2 誤字訂正

退会済みユーザー

退会済みユーザー

2017/01/06 21:01  投稿

play2.5(Java)を使用してDB間でのリレーションをしたい。
teratailは初めての投稿になります。
至らない点もあると思いますが、どうか宜しくお願いします。
playframework2.5.10(Java)を使用しております。
複数のDBに接続することはできるのですが、DB間でのリレーションができずに困っています。
以下の様にFirstModelとSecondModelでリレーションをしようとするとエラーが起きてしまいます。
```
CreationException: Unable to create injector, see the following errors:
Error injecting constructor, java.lang.RuntimeException: Error reading annotations for models.first.FirstModel
 at play.db.ebean.EbeanDynamicEvolutions.<init>(EbeanDynamicEvolutions.java:35)
 at play.db.ebean.EbeanDynamicEvolutions.class(EbeanDynamicEvolutions.java:32)
 while locating play.db.ebean.EbeanDynamicEvolutions
 at play.db.ebean.EbeanModule.bindings(EbeanModule.java:21):
Binding(class play.api.db.evolutions.DynamicEvolutions to ConstructionTarget(class play.db.ebean.EbeanDynamicEvolutions) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon
...
```
```Java
@Entity
public class FirstModel extends Model {
   @Id
   public Long id;
   public String name;
   @OneToOne
   public SecondModel second;
   public static Finder<Long, FirstModel> find = new Finder<>(FirstModel.class);
}
```
```Java
@Entity
public class SecondModel extends Model {
   @Id
   public Long id;
   public String name;
   @OneToOne(mappedBy = "second")
   public FirstModel first;
   public static Finder<Long, SecondModel> find = new Finder<>(SecondModel.class);
}
```
```application.conf
db {
 first.driver=com.mysql.jdbc.Driver
 first.url="jdbc:mysql://localhost/first_db"
 first.username=USERNAME
 first.password="PASSWORD"
 
 second.driver=com.mysql.jdbc.Driver
 second.url="jdbc:mysql://localhost/second_db"
 second.username=USERNAME
 second.password="PASSWORD"
}
ebean{
 first = ["models.master.*"]
 second = ["models.publicEntity.*"]
 first = ["models.first.*"]
 second = ["models.second.*"]
}
```
知見をお持ちの方がいらっしゃいましたら、お力を貸していただければ幸いです。
どうかよろしくお願いいたします。
  • Java

    15109 questions

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

  • Play Framework 2

    128 questions

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

1 誤字訂正

退会済みユーザー

退会済みユーザー

2017/01/06 20:51  投稿

play2.5(Java)を使用してDB間でのリレーションをしたい。
teratailは初めての投稿になります。
至らない点もあると思いますが、どうか宜しくお願いします。
playframework2.5.10(Java)を使用しております。
複数のDBに接続することはできるのですが、DB間でのリレーションができずに困っています。
以下の様にFirstModelとSecondModelでリレーションをしようとするとエラーが起きてしまいます。
```
CreationException: Unable to create injector, see the following errors:
Error injecting constructor, java.lang.RuntimeException: Error reading annotations for models.first.FirstModel
at play.db.ebean.EbeanDynamicEvolutions.<init>(EbeanDynamicEvolutions.java:35)
at play.db.ebean.EbeanDynamicEvolutions.class(EbeanDynamicEvolutions.java:32)
while locating play.db.ebean.EbeanDynamicEvolutions
at play.db.ebean.EbeanModule.bindings(EbeanModule.java:21):
Binding(class play.api.db.evolutions.DynamicEvolutions to ConstructionTarget(class play.db.ebean.EbeanDynamicEvolutions) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon
...
```
```Java
@Entity
public class FirstModel extends Model {
@Id
public Long id;
public String name;
@OneToOne
public SecondModel second;
public static Finder<Long, FirstModel> find = new Finder<>(FirstModel.class);
}
```
```Java
@Entity
public class SecondModel extends Model {
@Id
public Long id;
public String name;
@OneToOne(mappedBy = "second")
public FirstModel first;
public static Finder<Long, SecondModel> find = new Finder<>(SecondModel.class);
}
```
```application.conf
db {
first.driver=com.mysql.jdbc.Driver
first.url="jdbc:mysql://localhost/first_db"
first.username=USERNAME
first.password="PASSWORD"
second.driver=com.mysql.jdbc.Driver
second.url="jdbc:mysql://localhost/second_db"
second.username=USERNAME
second.password="PASSWORD"
}
ebean{
first = ["models.master.*"]
second = ["models.publicEntity.*"]
}
```
知見をお持ちの方がいらっしゃいましたら、お力を貸していただければ幸いです。
どうかよろしくお願いいたします。
  • Java

    15109 questions

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

  • Play Framework 2

    128 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る