【问题标题】:How to exclude db name from criteria builder?如何从条件生成器中排除数据库名称?
【发布时间】:2022-12-09 15:15:38
【问题描述】:

我正在尝试从 msSQLDB 获取数据(如果相关),但在执行此操作时遇到了问题。我想要的是从查询中排除数据库名称,它应该是这样的:

Select ... from CLASS2 ...

但我得到的是:

Select ... from db1.CLASS2 ...

这是一个有些遗留的项目,所以不可能改变架构。 它适用于 Oracle -> WL -> MSSQLDB 但根据当前规范:PostgreSQL -> Tomcat -> MSSQLDB 它没有。不确定我是否提供了足够的数据来使用,因此如果需要我可以提供更多详细信息。

@Table(name = 'CLASS') //table from db1
class CLASS1 exstends SUPERCLASS {
 //empty
}
@Table(name = 'CLASS2') //table from db2
class CLASS2 exstends SUPERCLASS {
//empty
}

@MappedSuperclass
class SUPERLASS {
//fields here

public static List<CLASS1> getData(ConnectionToken ct) {
CriteriaBuilder cb = ct.getCriteriaBuilder();
CriteriaQuery query = cb.createQuery(CLASS1.class);
Root<CLASS2.class) = qurey.from(CLASS2.class)
query.where ...
return ...

}
}

【问题讨论】:

    标签: java sql postgresql criteria criteria-api


    【解决方案1】:

    这看起来很微不足道,我只是忘了我能做到。 在 @TABLE 注释中,我刚刚添加了“schema”参数 @Table(name = 'CLASS2' shema='db2')

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 1970-01-01
      • 2020-11-07
      • 2013-01-15
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      相关资源
      最近更新 更多