我正在尝试在Spring数据存储库的接口(interface)中实现默认方法。我们有什么办法可以在 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();
}
}
有什么办法可以实现这样的设计吗?任何帮助表示赞赏。
最佳答案
不作为接口(interface)默认方法,但您可以编写基于自定义普通 JPA 的存储库接口(interface)实现。 请参阅CustomerRepository和 JpaCustomerRepository Spring Data Book 示例中的实现。
查看更多Spring Data引用信息: 4.6. Custom Implementations for Spring Data Repositories
关于java - 如何使用Java 8的默认方法在接口(interface)中使用EntityManager实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62801062/