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
1@Entity 2public class FirstModel extends Model { 3 4 @Id 5 public Long id; 6 7 public String name; 8 9 @OneToOne 10 public SecondModel second; 11 12 public static Finder<Long, FirstModel> find = new Finder<>(FirstModel.class); 13 14}
Java
1@Entity 2public class SecondModel extends Model { 3 4 @Id 5 public Long id; 6 7 public String name; 8 9 @OneToOne(mappedBy = "second") 10 public FirstModel first; 11 12 public static Finder<Long, SecondModel> find = new Finder<>(SecondModel.class); 13 14}
application.conf
1db { 2 first.driver=com.mysql.jdbc.Driver 3 first.url="jdbc:mysql://localhost/first_db" 4 first.username=USERNAME 5 first.password="PASSWORD" 6 7 second.driver=com.mysql.jdbc.Driver 8 second.url="jdbc:mysql://localhost/second_db" 9 second.username=USERNAME 10 second.password="PASSWORD" 11} 12ebean{ 13 first = ["models.first.*"] 14 second = ["models.second.*"] 15} 16
知見をお持ちの方がいらっしゃいましたら、お力を貸していただければ幸いです。
どうかよろしくお願いいたします。
あなたの回答
tips
プレビュー