Şu anda zor bir problemle uğraşıyorum. API'm için Play ve Akka aktörünü kullanmayı umuyordum. Sahip olduğum problem, Aktörüme enjekte etmeye çalıştığım her nesnenin boş kalması. Bir çözüm bu nesneyi denetleyiciye enjekte etmektir ve onu aktörümden geçirmektir ama yapmak istediğim şey bu değil. Nesnemi sadece ihtiyacım olan yere istiyorum.Enjekte edilen değişkenler null içinde UntypedActor Play 2.5 java
package actors;
import actors.Messages.GetAanleverAfspraakById;
import akka.actor.UntypedActor;
import model.domain.AanleverAfspraakDO;
import play.db.jpa.JPAApi;
import javax.inject.Inject;
import javax.persistence.Query;
import java.util.Collection;
/**
* Created by harms.h on 22-03-2016.
*/
public class AfspraakActor extends UntypedActor {
@Inject
private JPAApi api;
@Override
public void onReceive(Object message) throws Exception {
if(message instanceof GetAanleverAfspraakById){
final AanleverAfspraakDO aanleverAfspraakDO = this.getAanleverAfspraakDO(((GetAanleverAfspraakById) message).getId());
getSender().tell(aanleverAfspraakDO, getSelf());
}
else{
unhandled(message);
}
}
private AanleverAfspraakDO getAanleverAfspraakDO(int id){
final AanleverAfspraakDO aanleverAfspraakDO = api.withTransaction(() -> {
final Query query = api.em().createNamedQuery("findbyid").setParameter("id", id);
final Collection<AanleverAfspraakDO> resultSet = query.getResultList();
final AanleverAfspraakDO result = resultSet.iterator().next();
return result;
});
return aanleverAfspraakDO;
}
}
Burada yanlış yapıyorum? Şimdilik
Bunun için teşekkürler. Aynı konuya koştum ve jpaapi herhangi bir nedenle enjekte edilmiyor. Yukarıdaki açıklama iyi çalışıyor ve şimdilik engellemeyi kaldırdım. – Chaitanya