Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有谁知道将外部属性放入 jpa 命名查询的方法(如果有)?
例如:
@NamedQuery(name = "Test", query = "select t from ${table.name} t")
相对于:
@NamedQuery(name = "Test", query = "select t from TableName t")
谢谢
注释是最终的,因此它们不能在运行时更改,所以你不能这样做。
您可以在运行时定义本机查询而不是命名查询并自己翻译 SQL 字符串。
其他解决方案是在您的代码上使用某种预编译器,或使用某种持久性单元事件来后处理您的查询。如果您使用的是 EclipseLink,您可以为此使用 SessionCustomizer,或使用 SessionEventListener 在 SQL 查询执行之前对其进行预处理。