如何将 Postgres inet 数据类型与 OpenJPA 结合使用?

2024-07-01

我需要使用 OpenJPA (2.2.2) 在 Postgres (9.0) 表中记录 IP 地址。

我已经使用本机查询让它工作:

EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
int rows = entityManager.createNativeQuery("insert into click (ip) values (?::inet)") //
    .setParameter(1, InetAddress.getLocalHost().getHostAddress()) //
    .executeUpdate();
entityManager.getTransaction().commit();
entityManager.close();

但我更愿意找出一种让 OpenJPA 无需本地查询即可处理它的方法。

我搜索并发现了一些其他建议,例如像这样注释该列:

@Column(length = -1, columnDefinition = "inet")

但这似乎并不适合演员阵容。我得到这个例外:

ERROR: column "ip" is of type inet but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
Position: 32 {prepstmnt 1376458920 INSERT INTO Click (ip) VALUES (?) [params=?]} [code=0, state=42804]

我可以使用@Strategy注释字段并实现自定义FieldStrategy或ValueHandler吗?这似乎是正确的解决方案,但文档非常少,我找不到一个简单的示例来开始。

https://openjpa.apache.org/builds/2.2.2/apache-openjpa/docs/ref_guide_mapping_custom.html https://openjpa.apache.org/builds/2.2.2/apache-openjpa/docs/ref_guide_mapping_custom.html

任何有关修复注释或实现 FieldStrategy 或 ValueHandler 的指示将不胜感激。

编辑:我想通了。由于我没有足够的代表,我无法回答我自己的问题。

我创建了一个可以正确执行转换的自定义 DBDictionary。

package package.name.goes.here;
import org.apache.openjpa.jdbc.schema.Column;

public class PostgresDictionary extends org.apache.openjpa.jdbc.sql.PostgresDictionary {

@Override
public String getMarkerForInsertUpdate(Column col, Object val) {
    String colType = col.getTypeIdentifier().getName();
    if (colType != null) {
        return "?::" + colType;
    }
    return "?";
}

}

然后简单地注释该字段:

@Column(columnDefinition = "inet")

并在 persistence.xml 中注册自定义字典:

<property name="openjpa.jdbc.DBDictionary" value="package.name.goes.here.PostgresDictionary"/>

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Postgres inet 数据类型与 OpenJPA 结合使用? 的相关文章

  • Java中无法到达的语句编译错误[重复]

    这个问题在这里已经有答案了 class For1 public static void main String args int a 0 for break System out println a Line 1 a Line 2 我知道第
  • 为什么我们要在invokeAll方法之后调用join?

    我正在尝试了解 ForkJoinPool 框架并遇到以下示例 public class ArrayCounter extends RecursiveTask
  • android下拉刷新列表视图出错

    我正在使用功能下拉来刷新library https github com chrisbanes Android PullToRefresh克里斯班斯的 但是当我尝试在我的 xml 文件中导入这个小部件时 它向我显示以下错误 请帮助我如何解决
  • 如果没有发生触摸事件,Android SurfaceView 会变慢

    我正在制作一款游戏 除了游戏循环之外一切都很顺利 我正在使用 SurfaceView 并绘制 2D Sprites 位图 目前游戏是一艘穿过小行星带的飞船 飞船停留在屏幕中央 手机向任一方向倾斜以移动小行星 小行星改变位置而不是玩家 当旧的
  • 使用 jsoup 收集倒计时器并为 android 设置计时器

    我想解析 eBay 上的倒计时器 span class 5g 20h span 如何用 jsoup 解析它以在 android studio 上创建倒计时器 我可以像平常一样解析它吗element 像下面这样 更新 getMsFromStr
  • 查找 Maven 使用的 Java 选项

    如何找到 Maven 正在使用哪些 Java 选项 Xmx Xms Xss 等 我发现有一种方法set它们是通过环境 MAVEN OPTS 实现的 现在我想要一种方法来确保它获得正确的设置 编辑 我相信它有所不同这个问题 https sta
  • @AfterReturning 方面在切入点方法的同一事务中执行?

    我需要在执行函数后执行任务 我为此使用了 Aspect 但我有些困惑 我在 Spring 服务中有一个函数 A Transactional readOnly false isolation Isolation DEFAULT propaga
  • 您使用什么来进行复杂的构建过程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试改进我们的构建过程 目前它是一个巨大的 Ant build xml 它调用其他 ant 构建
  • 使用 Flink 监控数据流目录中的新文件

    我目前正在编写我的第一个 Flink 应用程序 并且想要监视文件夹中的新文件 不幸的是我找不到关于这个主题的很多例子 我找到了readFile fileInputFormat path watchType interval pathFilt
  • 在 Eclipse 中默认将类设为 Final 吗?

    有没有办法让 Eclipse 中的类默认为final 即 在保存操作中 还是在创建新类对话框中 这确实是一个 hack 但是您可以在 Eclipse 设置中设置以下代码模板 在 Java gt 代码样式 gt 代码模板 gt 代码 gt 新
  • Jersey/JAX-RS :在响应标头中返回内容长度而不是分块传输编码

    我正在使用 Jersey 创建 RESTful API 资源 并且ResponseBuilder生成响应 RESTful 资源的示例代码 public class infoResource GET Path service id Produ
  • 我正在从数组列表中获取内存地址,需要信息

    我正在获取一个文本文件并填充一个数组列表 为了测试该文件 我在继续之前将其打印出来 我只能看到内存地址 而看不到文件中的实际信息 我缺少一些简单且可能明显的东西吗 public class TriviaQuestion private St
  • 用java.nio在内存中写入文件?

    使用 nio 可以映射内存中的现有文件 但是是否可以仅在内存中创建它而不在硬盘驱动器上创建文件 我想模仿 CreateFileMapping 窗口函数 它允许您在内存中写入 Java 中有等效的系统吗 目标是写入内存以便另一个程序 c 读取
  • 以编程方式创建 PDF 相册

    我有一组 PDF 相册模板 它们有空白方块 用于放置文本和照片 我的需要是使用这些模板来生成实际的专辑 我的计划是使用 iText 和 Java 我会向应用程序发送一个包含所有要使用的图像 URL 的数组 我将确切地知道图像应该放置在模板上
  • 如何向 XML DOM 对象添加命名空间前缀?

    我正在尝试使用特定的命名空间构建 XML 文档 我尝试生成的最终文档应该如下所示
  • 在 Java 8 中使用 Lambda 将流收集到 HashMap 中

    我有一个 HashMap 我需要使用一些函数来过滤它 HashMap
  • 在 JSP 中呈现 JSON 数据的最佳实践是什么?

    我需要在 JSP 中针对某些 AJAX 请求呈现 JSON 数据 我想知道在易用性和稳定性方面最好的方法是什么 假设您想要从一个或多个 Java 对象生成 JSON 以下是一种相当简单的方法 将 Java 对象设置为请求 会话范围内的属性
  • 允许轻松打印字节码指令*包括*参数的库

    我正在寻找一个图书馆easily让我查看方法的给定字节码 例子 ALOAD 0 INVOKEVIRTUAL ns c m I IRETURN 我都尝试过 ASM 我实际上可以让它打印指令和参数 但是我很难理解它的整个访问者范例 也就是说 我
  • Java将浮点字符串解析为浮点数组?

    有没有一种简单的方法将浮点字符串解析为浮点数组 我正在编写一个导入程序 它需要解析一个 ascii 文件以获取一些值 我只是想知道是否有更简单的方法来执行此操作 然后自己搜索所有空白并使用Float parseFloat s 对于每个空格分
  • 计算时间复杂度和 Big-O 表示法 [重复]

    这个问题在这里已经有答案了 我的以下代码的 Big O 表示法的时间复杂度是多少 计算它的步骤是什么 import java io File import java io FileNotFoundException import java

随机推荐

  • 使用 writeBytes 的 Java 客户端套接字

    我正在从缓冲区读取字符串并将其写入服务器 我遇到的问题是 当我打开套接字并循环写入时 服务器永远不会收到该字符串 当我使用这个时 try Socket send new Socket localhost 1490 DataOutputStr
  • 在 Android 的视图中创建透明的圆形切口

    我正在尝试创建一个半透明的帮助叠加层 以便在用户首次打开应用程序时显示在我的活动的主屏幕上 我想通过 剪切 与按钮位置相对应的覆盖层部分来突出显示主布局中包含的按钮 并使用 setContentView 进行膨胀 并使剪切部分透明 覆盖层是
  • 错误:索引表达式中的函数必须在 Postgres 中标记为 IMMUTABLE

    我想创建多列表达式索引 但是当我创建索引时 输出以下消息 detail message wapgrowth gt create index CONCURRENTLY idx test on tmp table using btree sky
  • 避免使用react-redux重新渲染一个大的项目列表

    我正在为我的应用程序使用 redux 以及 React 和 TypeScript 我正在处理在我的应用程序的不同位置使用的许多项目 我的状态看起来像这样 items 42 53 A large dictionary of items ite
  • Firebase 令牌身份验证错误

    我正在使用 firebase 存储上传文件 但是当我上传时出现此错误 E StorageUtil error getting token java util concurrent ExecutionException com google
  • 在控制台应用程序中将命令行参数传递到 VB6 IDE

    我有一个 VB6 控制台应用程序 它使用命令行参数 为了进行调试 我希望能够从 IDE 启动它 并且最好能够向它传递这些参数以查看它的正常运行情况 我意识到我可以在适当的位置设置一个断点 并使用立即窗口在命令行之外设置值 并且我过去使用过一
  • 如何使用javascript从另一个页面(同一域)的内容中获取信息?

    假设我有一个网页 index html 包含以下内容 li div item1 div a href details item1 html details a li 我想要一些 javascript index html加载那个 detai
  • 连接到进程后 Xcode 控制台为空[重复]

    这个问题在这里已经有答案了 我在 iPhone 上构建了一个应用程序 退出它 再次启动它 然后成功附加到 Xcode 中的进程 现在我在日志导航器中运行了调试 但我的控制台是空的 我不应该在那里看到所有常用的控制台输出吗 您可以在设备日志中
  • SQL Server,误导性的 XLOCK 和优化

    从我最近所做的一些测试和阅读来看 XLOCK 的 X 独占 名称部分似乎具有误导性 事实上 它并不比 UPDLOCK 多加锁 如果它是独占的 它将阻止外部 SELECT 但事实并非如此 我无法从阅读或测试中看出两者之间的区别 XLOCK 唯
  • Mysql Slave 未更新

    我已经设置了复制 一切看起来都很好 我没有错误 但数据没有被移动到从站 mysql gt show slave status G 1 row Slave IO State Waiting for master to send event M
  • 在 lambda 中捕获完美转发的变量

    template
  • 如何在表格视图中对图像进行动画处理以同时扩展和打开另一个视图控制器?

    我正在制作一个消息应用程序 我希望用户单击我的表格视图中的图像 它应该扩展到全屏并在导航栏上显示不同的控件 我该怎么办 我想我可以拍摄相同的图像 将 UIImageView 放在原始单元格图像之上并将其动画化为全屏 但是我如何在没有闪烁 延
  • 协程内的具体化泛型参数不起作用

    我正在创建 http json 客户端 我将 Volley 与协程结合使用 我想创建通用的 http 客户端 这样我就可以在任何地方使用它 我创建了通用扩展方法来将 JSON 字符串解析为对象 inline fun
  • 使用 ELB 和 Node 防止 X-Forwarded-For 欺骗

    我正在分析基于弹性负载均衡器的公共路由堆栈 该负载均衡器打开 PM2 公开的端口 PM2 使用 koa 模块启动节点应用程序 目前 IP 已被记录 这仅取决于X Forwarded For标头 如果此标头是使用手动创建的curl 然后应用程
  • 如何避免sql死锁?

    我正在使用 MS SQL 2008 并在 Web 项目中使用 C 进行编码 目前 我遇到了 sql 死锁问题 我有两笔交易 其中两笔是长交易 当两个事务同时运行时 就会发生死锁 短事务会被自动选择杀死 我当前的解决方案 我正在捕获死锁异常并
  • STL算法全部或任意函数?

    作为 STL 的一部分 是否有任何类似于 Haskell 的全部或任何功能的东西 如果不是 下面是一个很好的实现吗 我注意到如果迭代器是随机访问 sgi STL 会执行部分特化 尽管我没有为此烦恼 template
  • 如何更改角度材料日期选择器格式

    这是我使用角度材料日期选择器时得到的日期格式 Wed Nov 21 2018 00 00 00 GMT 0530 India Standard Time 但我需要约会 YYYY MM DD or YYYY MM DDTHH mm 这种格式
  • 倾斜的 div 顶部和底部 CSS

    我正在尝试制作以下倾斜的 div 我几乎已经达到了下面的形状 但是底部并没有像下面的形状那样朝正确的方向倾斜 我该如何纠正这个问题 附形状 http jsfiddle net fgdcq3qp http jsfiddle net fgdcq
  • 如何使用 jQuery 定期更新页面上的日期/时间值?

    在此示例中 我有一个输入文本字段 其中包含使用 jQuery 设置的日期时间值 http jsfiddle net D4Hu9 http jsfiddle net D4Hu9 HTML
  • 如何将 Postgres inet 数据类型与 OpenJPA 结合使用?

    我需要使用 OpenJPA 2 2 2 在 Postgres 9 0 表中记录 IP 地址 我已经使用本机查询让它工作 EntityManager entityManager entityManagerFactory createEntit