将外部属性放入命名查询中

时间:2012-05-10 07:51:13

标签: java spring jpa

有没有人知道将外部属性放入jpa命名查询的方法(如果有的话)?

例如:

@NamedQuery(name = "Test", query = "select t from ${table.name} t")

相反:

 @NamedQuery(name = "Test", query = "select t from TableName t")

由于

2 个答案:

答案 0 :(得分:1)

注释是最终的,因此它们不能在运行时更改,因此您不能这样做。

答案 1 :(得分:0)

您可以在运行时定义本机查询而不是命名查询,并自行翻译SQL字符串。

其他解决方案是在代码上使用某种预编译器,或使用某种持久性单元事件来处理您的查询。如果您正在使用EclipseLink,则可以使用SessionCustomizer,或者使用SessionEventListener在执行SQL查询之前对其进行预处理。