如何使用Java 8的默认方法在接口中使用EntityManager实例?
我试图在Spring数据存储库的接口中实现默认方法。在Java 8的接口中,我们是否可以使用默认EntityManager的实例 下面是我想要做的理想实现如何使用Java 8的默认方法在接口中使用EntityManager实例?,java,spring,jpa,java-8,spring-data-jpa,Java,Spring,Jpa,Java 8,Spring Data Jpa,我试图在Spring数据存储库的接口中实现默认方法。在Java 8的接口中,我们是否可以使用默认EntityManager的实例 下面是我想要做的理想实现 import org.springframework.data.repository.CrudRepository; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Que
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();
}
}
我们有没有办法实施这样的设计?非常感谢您的帮助。不是作为接口默认方法,但您可以编写基于JPA的自定义存储库接口实现。 请参阅Spring数据手册示例中的示例和实现 查看有关弹簧数据参考的更多信息:
不是作为接口默认方法,但您可以编写基于JPA的存储库接口自定义普通实现。 请参阅Spring数据手册示例中的示例和实现 查看有关弹簧数据参考的更多信息:
该方法不需要任何自定义实现。让Spring为您生成它:
public interface CustomerRepository extends CrudRepository<Customer, Long> {
List<Customer> findAllByCity(String city);
}
唯一需要做的就是稍微调整一下方法名称,让Spring理解它。该方法不需要任何自定义实现。让Spring为您生成它:
public interface CustomerRepository extends CrudRepository<Customer, Long> {
List<Customer> findAllByCity(String city);
}
你唯一需要做的就是稍微调整一下方法名,让Spring理解它。实际上,我需要用我们自己的自定义方法扩展JPA存储库的功能。此示例仅用于说明目的。某些特定于数据库的操作需要自定义方法。这就是可以为您指明正确方向的方法。您能给出一个您想要实现的特定于数据库的操作的示例吗?谢谢您的帮助。但我会尝试简单的存储库解决方案,因为它符合我的需求。实际上,我需要用我们自己的自定义方法扩展JPA存储库的功能。此示例仅用于说明目的。某些特定于数据库的操作需要自定义方法。这就是可以为您指明正确方向的方法。您能给出一个您想要实现的特定于数据库的操作的示例吗?谢谢您的帮助。但我会尝试普通存储库解决方案,因为它符合我的要求。谢谢您的指导。我一定会尝试这个解决方案。谢谢你的指导。我一定会尝试这个解决方案。