【发布时间】:2014-09-06 18:28:58
【问题描述】:
有没有人可以提供一个使用注入引用类的开关场服务示例:
@PersistenceContext 私有实体管理器实体管理器;
一个使用@NamedQueries 的例子会很好。
你好!
【问题讨论】:
标签: hibernate jpa named-query
有没有人可以提供一个使用注入引用类的开关场服务示例:
@PersistenceContext 私有实体管理器实体管理器;
一个使用@NamedQueries 的例子会很好。
你好!
【问题讨论】:
标签: hibernate jpa named-query
将 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
}
Bean 实现类 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;
}
}
Facade层的实现类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;
}
模型类。将DB表映射到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;
}
【讨论】: