我目前有这样一段代码,它不能正常工作,因为我必须在查询中每个表之前添加模式名称(如DEV.DASHBOARDS_METADATA
):
public interface DashboardMetadataDao extends CrudRepository<DashboardMetadata, Integer> {
@Query("SELECT D FROM DASHBOARDS_METADATA D " +
"INNER JOIN FAC_DASHBOARDS_LINK DL ON D.ID = DL.DASHBOARD_ID " +
"INNER JOIN FIRMS F ON DL.FAC_ID = F.FAC_UNIT_ID " +
"INNER JOIN USERS U ON U.FIRM_ID = F.FIRM_ID WHERE LOWER(U.USERID) = LOWER(:userid)")
public Set<DashboardMetadata> findByUserId(@Param("userid") String userId);
}
问题在于不同的数据库(DEV/QA/PROD)拥有不同的模式名称。通常,我会使用组件的方法,在查询生成过程中在每个表前加上模式名称。如何使用注释实现这一点呢?谢谢!
@Profile
。 - user180100