【发布时间】:2011-08-25 19:49:00
【问题描述】:
我什至不确定这是否可能,但我认为值得一问。很长一段时间以来,我一直在使用本机查询。
假设我有这个问题。
public static List<PkgLoad> findBetweenDatesWrapSpec( PkgLine pkgLine, WrapSpec wrapSpec, Date startDate, Date endDate, boolean metric ) {
CriteriaBuilder builder = JPA.local.get().em().getCriteriaBuilder();
CriteriaQuery cq = builder.createQuery( PkgLoad.class );
Root<PkgLoad> pkgLoad = cq.from( PkgLoad.class );
Predicate pkgLineQuery = builder.equal( pkgLoad.get( "pkgLineId" ), pkgLine );
Predicate wrapQuery = builder.equal( pkgLoad.get( "wrapSpecId" ), wrapSpec );
Predicate dateQuery = builder.between( pkgLoad.get( "timeStamp" ).as( Date.class ), startDate, endDate );
cq.where( builder.and( pkgLineQuery, wrapQuery, dateQuery ) );
cq.orderBy( builder.desc( pkgLoad.get( "timeStamp" ) ) );
Query query = JPA.local.get().em().createQuery( cq );
return query.getResultList();
}
我在模型中有一个名为 ounces 的列。如果我想根据属性将盎司转换为公制怎么办。现在这个属性依赖于用户名,所以覆盖 get 方法不是一个选项。如果我覆盖了一个 get 方法,它会弄乱应用程序的其余部分。只是想知道这方面的任何选择。谢谢。
【问题讨论】:
标签: jpa playframework jpa-2.0 criteria-api