Teraz tworzę EntityManagerFactory
takiego:Tworzenie EntityManagerFactory programowo (bez persistence.xml pliku) z adnotacjami klas
Map<String, String> properties = ImmutableMap.<String, String>builder()
.put(DRIVER, "com.mysql.jdbc.Driver")
.put(DIALECT, "org.hibernate.dialect.MySQL5Dialect");
.put(USER, dbUsername)
.put(PASS, dbPassword)
.put(URL, dbConnectionUrl)
//Some more properties
.build();
Ejb3Configuration cfg = new Ejb3Configuration();
cfg.configure(properties);
cfg.addAnnotatedClass(AuditEntry.class);
cfg.addAnnotatedClass(LastWrittenEventId.class);
//Some more annotated classes
return cfg.createEntityManagerFactory();
Jednak jak widzę w Javadocs, Ejb3Configuration
jest przestarzała i nie należy go używać. Powinienem użyć Persistence.createEntityManagerFactory()
zgodnie z JPA spec rozdział 7.3. Ale mogę przekazać tylko niektóre właściwości, ale czy mogę w jakiś sposób dodać przypisane klasy?
Myślę, że ten post może Ci pomóc http://stackoverflow.com/questions/8448950/adding-entity-classes-dynamicznie-at-runtime –