Oracle veritabanı için 2.5 sürümü ile bir API üzerinde çalışıyorum. Şimdi oyunda JPA için özelliklerde yapıyı kullanmaya çalışıyorum. Bu anda, numaralı "Bu iş parçacığına hiçbir EntityManager bağlanmadı" hatasını alıyorum. Bu çağrıyı JPAApi.withTransaction'da sarmayı deneyin veya HTTP içeriğinin bu iş parçacığına kurulduğundan emin olun. " . Bu, gerçek çağrıdan sorumlu olan koddur. Benim JPA aramalar için oyunun inşa özelliklerini nasıl kullanabileceğiniziFarklı aramalarımın her biri için bir varlık yöneticisi fabrikası oluşturmadan JPA'yı oyun 2.5 ile nasıl kullanabilirsiniz?
package actors.protocols;
import akka.japi.Option;
import model.DTO.AanleverAfspraakVO;
import model.domain.AanleverAfspraakDO;
import play.db.jpa.JPA;
import play.db.jpa.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.Collection;
public class AanleverAfspraakActorProtocol implements Protocol {
public static class GetAanleverAfspraakByID{
private int id;
public GetAanleverAfspraakByID(int id){
this.id = id;
}
/**
* Get AanleverAfspraak by id
* @return AanleverAfspraakVO or null
*/
@Transactional
public Option<AanleverAfspraakVO> getAanleverAfspraakById(){
final EntityManager entityManager = JPA.em().getEntityManagerFactory().createEntityManager();
final Query query = entityManager.createNamedQuery("findbyid");
query.setParameter("id", id);
final Collection<AanleverAfspraakDO> resultset = query.getResultList();
final Option<AanleverAfspraakVO> response;
Option<AanleverAfspraakVO> response_value = Option.none();
System.err.println("Size: " + resultset.size());
if(!resultset.isEmpty()){
try{
AanleverAfspraakDO aanleverAfspraakDO = resultset.iterator().next();
response_value = Option.some(this.convertAanleverAfspraakBOToVO(aanleverAfspraakDO));
}catch(Exception e){
response_value = Option.none();
e.printStackTrace();
}
finally {
try {
entityManager.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
response = response_value;
return response;
}
/**
* Convert AanleverAfspraakBO to AanleverAfspraakVO
* @param aanleverAfspraakDO
* @return
* @throws NullPointerException
*/
private AanleverAfspraakVO convertAanleverAfspraakBOToVO(AanleverAfspraakDO aanleverAfspraakDO) throws NullPointerException {
if(aanleverAfspraakDO == null){
throw new NullPointerException("aanleverAfspraakDO is null");
}
final AanleverAfspraakVO aanleverAfspraakVO = new AanleverAfspraakVO();
aanleverAfspraakVO.setId(aanleverAfspraakDO.getId());
aanleverAfspraakVO.setOmschrijving(aanleverAfspraakDO.getOmschrijving());
aanleverAfspraakVO.setIngangsDatum(aanleverAfspraakDO.getIngangsdatum());
aanleverAfspraakVO.setEindDatum(aanleverAfspraakDO.getEinddatum());
return aanleverAfspraakVO;
}
public int getId(){return id;}
}
}
Birisi bana açıklayabilir misiniz?
bir örneğidir benim işlem
için aşağıdaki kodu kullandım. Yani JPAApi önerilen seçimdir (muhtemelen daha önce anladığınız gibi). – Kris