0 0

在jpa中获取一条记录的前一条记录的办法5

有这样一个实体
@Entity
public class Post implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date postDate;    
}


实体都是按日期插入进去的,所以记录就相当于按日期排序的。如果我获取了其中的一个实体,我想通过这条实体获取它日期之前的的一条实体。最笨的办法就是这样
    public Post getPreview(Post p) {
        String jpql = "select from Post p where p.postDate<:date";
        Map<String, Date> params = new HashMap();
        params.put("date", p.getPostDate());
        List<Post> results = this.getJpaTemplate().findByNamedParams(jpql, params);
        return results.get(results.size()-1);
    }


但这样子会先把这条实体之前的全部实体全抓出来。有没有别的更好的办法
2009年9月27日 12:07
目前还没有答案

相关推荐

Global site tag (gtag.js) - Google Analytics