@PersistenceUnit не работает в PlayFramework? - PullRequest
0 голосов
/ 11 декабря 2011

Конфигурация БД:

db=mysql://root@localhost/db
jpa.dialect=org.hibernate.dialect.MySQLDialect
....
db_other.url=jdbc:mysql://localhost/db2
db_other.driver=com.mysql.jdbc.Driver
db_other.user=root
db_other.pass=
db_other.jpa.dialect=org.hibernate.dialect.MySQLDialect

В этих базах данных у меня есть абсолютно точные таблицы (клоны).Но разница в том, что в этих таблицах разные значения.('Value # 1' и 'Value # 2' соответственно).

Простая модель:

package models;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.PersistenceUnit;
import javax.persistence.Table;
import play.db.jpa.GenericModel;

@Entity
@PersistenceUnit(name="other")
@Table(name="testtable")
public class DbTest extends GenericModel {
    @Id
    public String value;
}

Остальной код:

List<DbTest> lst = DbTest.findAll();
if(!lst.isEmpty())
        System.out.println(lst.get(0).value);

Всегдапечатает значение # 1.(Это должно быть 'Value # 2', как в db2).Конечно, я указал @PersistenceUnit (name = "other").Но это не имеет никакого эффекта.Даже если я изменю имя pers.unit на random, никаких ошибок.Эта аннотация не работает или просто игнорируется?Или я где-то ошибся?: /

ps Также я попытался получить EntityManager, как показано в руководстве по фреймворку (/documentation/jpa#multiple).

EntityManager em = JPA.getJPAConfig("other").em();

Но это невозможно: <<Метод getJPAConfig (String) не определен для типа JPA >>

1 Ответ

0 голосов
/ 12 декабря 2011

Play 1.2.3 не поддерживает несколько баз данных. Поддержка для раздел нескольких баз данных был включен в эту страницу документации ошибка (функция есть только в основной ветке на github).

(сейчас не могу найти источник)

посмотрите, например, здесь: http://groups.google.com/group/play-framework/browse_thread/thread/4079cc961db8c750?pli=1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...