有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

spring如何使用Java 8的默认方法在接口中使用EntityManager实例?

我试图在Spring数据存储库的界面中实现默认方法。有没有办法在Java 8的接口中使用默认EntityManager的实例

下面是我想要实现的

import org.springframework.data.repository.CrudRepository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

public interface CustomerRepository extends CrudRepository<Customer, Long> {

   @PersistenceContext
   EntityManager em;

   default List<Customer> findCustomersByCity(String city){
       Query query = em.createNativeQuery("SELECT * FROM customer WHERE city = ?1", Customer.class);
       query.setParameter("city",city);
       return query.getResultList();
   }

}

我们有没有办法实现这样的设计?感谢您的帮助


共 (1) 个答案

  1. # 1 楼答案

    该方法不需要任何自定义实现。让Spring为您生成它:

    public interface CustomerRepository extends CrudRepository<Customer, Long> {
      
        List<Customer> findAllByCity(String city);
    
    }
    

    唯一需要做的就是稍微调整一下方法名,让Spring理解它