您好我以下列方式扩展了JpaRepository接口。
public interface StudentRepository extends JpaRepository<Student,Integer>
{
@Query(value= "SELECT s.id FROM student as s where s.createdat > ADDDATE(CURRENT_DATE, :maxage ", nativeQuery = true )
public List<Integer> findWaitingStudentIds(@Param("maxage")int maxAge);
}
这是Entity
类。
@Entity(name="student ")
public class Student implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(unique=true, nullable=false)
private Integer id;
@Temporal(TemporalType.TIMESTAMP)
@Column(updatable = false,insertable = false)
private Date createdat;
}
我想为&#34; List findWaitingStudentIds&#34;添加缓存方法。我怎样才能做到这一点?
答案 0 :(得分:4)
我可以从StackOverflow问题中复制粘贴我的答案:
How should I implement a cache object/system in Spring?
Spring在3.x RELEASE中引入了Cache的抽象。你可以阅读 关于它的官方Spring文档(该网站今天已关闭 某种原因:)),或者在这篇文章中。例如。
http://java.dzone.com/articles/spring-cache-abstraction-0
通过这种抽象,您需要做的就是添加缓存 您的服务的一些注释,如
为缓存添加值
@Cacheable("customers") public Customer findCustomer(long customerId) {...}
删除缓存中的值
@CacheEvict(value="customer", allEntries = true) public void removeAllCustomers(long customerId) {...}
答案 1 :(得分:1)
您可以考虑阅读Hibernate Reference Manual。当我第一次使用它时,它帮助了我很多。它确实澄清了概念及其运作方式。
StackOverflow中还有其他一些答案:Hibernate Cache Reference。
网上还提供了几个快速教程:
我希望这个信息可以帮助你。