我想知道是否可以通过某种方式从会话工厂获取默认架构名称?我需要得到它的原因是因为我必须使用一个本机SQL,并且我有多个会话工厂用于多个模式和一个数据源。所有生成的hibernate查询都由具有选择访问其他模式权限的单个用户运行。
我刚刚发现,hibernate具有{h-schema}替换项,可以在本机sql查询中使用。因此,当您连接到oracle数据库中的一个架构并希望针对不同的架构执行查询时,此工作就可以轻松完成。例如:
select * from {h-schema}table_name
replaceAll鉴于每个会话工厂都配置了"hibernate.default_schema"属性,因此Hibernate 无需处理查询手册,而是会处理所有事情。
replaceAll
"hibernate.default_schema"