Диспетчер сущностей jpa hibernate Switchyard NamedQuery

Кто-нибудь может предоставить пример службы коммутатора с использованием введенного эталонного класса, содержащего:

@PersistenceContext private EntityManager entityManager;

пример с использованием @NamedQueries был бы хорош.

Приветствую!


person user1632928    schedule 16.07.2014    source источник


Ответы (1)


Используйте привязку Bean к сервису, который вы можете создать. Ниже приведен пример использования REST

 /**
 * This is the rest interface for Switchyard This interface
 *         contains the services which are exposed 
 */

Interface VendorRestService.java
@Path("/vendorDetails")
public interface VendorRestService {

@GET
    @Path("/vendorPriceDetails")
    @Produces({ MediaType.APPLICATION_JSON })
    public Response<List<String>> getAllPriceDetails(
            @QueryParam("vendorId") String vendorId,
            @QueryParam("location") String location);

}

VendorService.java

public interface VendorService {
    Response<List<String>> getAllPriceDetails(VendorRequest request);
}

VendorRequest.java

public class VendorRequest  {


    @JsonProperty("vendorId")
    private String vendorId;

    @JsonProperty("location")
    private String location;

    getters/setters
    }

Класс реализации компонента VendorServiceBean.java

@Service(VendorService.class)
public class VendorServiceBean implements VendorService {
@Override
    public Response<List<String>> getAllPriceDetails(VendorRequest request) {
        .
        .
        .

        priceList = vendorFacade.getPriceByVendor(request.getVendorId(),request.getLocation());
        .
        .
        .
        return Response;
    }
    }

Класс реализации фасадного слоя VendorFacadeImplementation.java

public class VendorFacadeImplementation implements VendorFacade {

@Inject
private EntityManager em;

    @Override
    public List<String> getPriceByVendor(String vendorId,
            String location) {
            try{
            query = em
                    .createNamedQuery("VendorData.getVendorPriceDetails");
            query.setParameter("vendorId", vendorId);
            query.setParameter("location", location);
            List<String> priceList = query.getResultList();
            }catch(Exception ex){

            }


            return priceList;

            }

Класс модели. Отображение таблицы БД в класс Java

@Entity
@Table(name = "VendorData")
@NamedQueries({ 
    @NamedQuery(name = "VendorData.getVendorPriceDetails", query = "select vd.price from VendorData vd where vd.vendorId = :vendorId and vd.location = :location"))}
    public class VendorData implements java.io.Serializable {   


}   



/*Expose an entity manager using the resource producer pattern*/
 Resources.java
 public class Resources {

    /*Expose an entity manager using the resource producer pattern*/

    @PersistenceContext
    @Produces
    private EntityManager em;

    }
person JavaTweets    schedule 21.08.2015