有没有人知道将外部属性放入jpa命名查询的方法(如果有的话)?
例如:
@NamedQuery(name = "Test", query = "select t from ${table.name} t")
相反:
@NamedQuery(name = "Test", query = "select t from TableName t")
由于
答案 0 :(得分:1)
注释是最终的,因此它们不能在运行时更改,因此您不能这样做。
答案 1 :(得分:0)
您可以在运行时定义本机查询而不是命名查询,并自行翻译SQL字符串。
其他解决方案是在代码上使用某种预编译器,或使用某种持久性单元事件来处理您的查询。如果您正在使用EclipseLink,则可以使用SessionCustomizer,或者使用SessionEventListener在执行SQL查询之前对其进行预处理。