我正在使用spring + jpa + hibernate从oracle db调用存储过程。
根据我的个人资料设置为dev
还是prod
,我需要创建稍微不同的@NamedStoredProcedureQuery
。目前,我使用以下实体
@Entity
@Table(name = "MYTABLE")
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(name = "MYSTOREDPROC",
procedureName = "DBNAME.PACKAGE.MYSTOREDPROC", <-- this DBNAME is profile dependent
parameters = {
@StoredProcedureParameter(mode = ParameterMode.REF_CURSOR, name = "records", type = void.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "id", type = String.class)})
})
public class MyEntity {...}
如果我在dev
,然后是DBNAME=DB_DEV
,如果我在prod
,然后是DBNAME=DB_PRD
我该如何实现?如果只给它起PACKAGE.MYSTOREDPROC
作为过程名称,为什么它不起作用?
感谢您的帮助