JpaRepository中的动态实体名称?
问题描述:
我使用的春天JpaRepository
,并希望提供一个通用的接口,一般得到的SQL查询中使用el
表达式如下:JpaRepository中的动态实体名称?
public interface BaseRepo <B> extends CrudRepository<B, Long> {
@Query("SELECT b FROM #{#entityName} b)
List<B> findAllB();
}
@Entity
class Booking {} //results in "booking"
这工作得很好!但是如果期望的实体包含下划线呢?我如何定义el表达式如何翻译实体名称的策略?
@Entity
@Table(name = "booking_entity")
class BookingEntity {} //results in "bookingentity", missing underscore!
答
您可以使用注释@Entity(name="booking_entity")
。
'@ Query'应该放在'JPQL'中,它应该*使用'BookingEntity',而不是'booking_entity'。 (例如)hibernate使用'@ Table'将JPQL映射到实际的SQL查询。 – beerbajay 2015-04-02 10:29:45