gpt4 book ai didi

java - 针对 Oracle AND Postgres 的 Java 应用程序

转载 作者:行者123 更新时间:2023-12-02 08:37:07 25 4
gpt4 key购买 nike

是否有人有使用 Java 创建与数据库无关的应用程序(尤其是使用 Hibernate)并同时针对 Oracle 和 Postgres 数据库的经验?

我特别关注 Oracle Spatial 和 PostGIS。我们想要创建一个基于 Java 的 SOA,它可以与 Oracle Spatial 和 PostGIS 后端一起使用。我已经将 Hibernate 与这两个数据库一起使用,但从未打算同时针对这两个数据库。我可以创建场景,其中相同的代码可以根据使用的数据库生成不同的结果。

也许 hibernate 可以处理这个问题,但很高兴听到是否存在任何已知问题。

最佳答案

连同 hibernate 我可以推荐 Hibernate Spatial ,一个支持 Mysql、Oracle 和 Postgre 及其各自 GIS 扩展的扩展。

我遇到的一些陷阱:

请注意,正确配置方言并非易事。确保不会为每个语句重新配置方言,就像我遇到的那样。

根据您使用的 hibernatespatial 的功能,您可能会被锁定在 hibernate 的特定版本号

您只能使用标准 API,不直接支持 hql。

我使用 hibernatespatial 的代码如下所示:

  if (query.getMaxDistance() != null && query.getCenter() != null) {
basicCriteria.add(SpatialRestrictions.within("coordinate", GeoidCircleFactory.circle(query.getCenter(), query.getMaxDistance())));
}

你将遭受 postgis 和其他人所面临的一些非常可怕的限制。我建议放宽您的一些应用程序需求,以更好地适应您的数据库的可能性。例如,“角度空间”中的查询比“欧几里德空间”中的查询容易得多。

GeoidCircleFactory 中包含的代码看起来相当可怕......:)

关于java - 针对 Oracle AND Postgres 的 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com