Ich möchte auf die Datenbank mit JPA 2.1 Eclipselink beim Start zugreifen. Wenn es ausgeführt wird, erhalte ich eine erfolgreiche Anmeldung im Konsolenprotokoll, aber es wirft eine Tabelle oder eine Ansicht ist nicht vorhanden. Wenn ich jedoch meinen Dao in Servlet durch den Rest-Service anrufe, läuft alles gut. Fehle ich etwas?Verwenden von JPA beim Start Singleton
public abstract class BaseDao{
@PersistenceContext(unitName = "myUnit")
protected EntityManager em;
pubic void create(Object entity);
public Ojbect get();
}
@Stateless
public class MyDaoService extends BaseDao{
@Override
public void create(Object entity){
this.em.persit(entity);
}
...
}
@Singleton
@Startup
public class MySingleton{
@EJB
private MyDaoService service;
@Schedule(hours="*", minutes="*", seconds="*/30")
public void doSomething(){
MyEntity entity = new MyEntity();//assumed I have entity object
entity.setFirstName("firstName");
entity.setLastName("lastName");
service.create(entity); //>>>Table or view does not exist exception
}
}
EDITED: Ich habe @Schedule Anmerkung, die alle 30 Sekunden läuft und ich glaube nicht, gibt es keine Abhängigkeiten. Meine Datenquelle verwendet die Proxy-Authentifizierung und da das Programm automatisch ausgeführt wird und kein Benutzer mit ihm verbunden ist. Ich denke, das ist das Problem. Ich weiß nicht, ob es eine Möglichkeit gibt, Benutzernamen und Passwort in den EntityManager zu injizieren – SpyClown