Hibernate @ManyToMany joinTable - OrderBy 使用连接表的字段

2023-11-24

有3张表:

TABLE_A
ID_A
field1
fieldN

TABLE_B
ID_B
field1
fieldN

表_A_B
ID_A
ID_B
订单字段

public class A(){
    @ManyToMany
    @JoinTable(name="TABLE_A_B", joinColumns={@JoinColumn(name="ID_A")}, inverseJoinColumns={@JoinColumn(name="ID_B")})
    @OrderBy(value="orderField")
    private List<TABLE_B> BList;
}

但它不起作用,而是出现运行时错误:

Caused by: org.postgresql.util.PSQLException: ERROR: column B1_.orderField doesn't exist Position: 1437

Hibernate 搜索 TABLE_B 中的字段。是否可以使用连接表的字段在多对多关系中使用“OrderBy”?或者有其他方式可以在同一领域获得订单吗?


您的代码是正确的,您尝试一下,它会起作用。一个问题是你正在使用list因此,虽然您在缓存中拥有该列表可能不会被排序,但是如果您清除当前会话并再次获取它,它将按照您设置的顺序进行排序@OrderBy(value="orderField").

还有另一个问题@OrderBy关于冬眠文档;

列表可以通过两种不同的方式进行映射:

  • 作为有序列表,其中顺序未在数据库中具体化
  • 作为索引列表,其中顺序在数据库中具体化

要对内存中的列表进行排序,请将 @javax.persistence.OrderBy 添加到您的 财产。

但我刚刚尝试过你的问题,数据库查询按参数排序(hibernate.show_sql=true),所以我不确定他们上面的陈述是什么意思。

我的查询示例;

select ... from ... inner join ... where users0_.event_id=? order by user1_.fullname

我的结论是,如果在数据库上完成排序,那么您可以安全地使用 @OrderBy 注释。

UPDATE:

@OrderBy例如,应该具有本机 sql 值;

@OrderBy(value="orderField")
private List<TABLE_B> BList;

where orderField是表中列的数据库名称TABLE_B,也可以这样做@OrderBy(value="lower(fullname) desc")

如果您想在连接 TABLE_A_B 中创建列,该列与 java 列表中的顺序保持相同,那么您应该使用@OrderColumn(name="orderField")

尝试这个;

@ManyToMany
@JoinTable(name="TABLE_A_B", joinColumns={@JoinColumn(name="ID_A")}, inverseJoinColumns={@JoinColumn(name="ID_B")})
@OrderColumn(name="orderField")
private List<TABLE_B> BList;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate @ManyToMany joinTable - OrderBy 使用连接表的字段 的相关文章

随机推荐

  • 与 pyodbc 的通信链路失败

    import pyodbc import time connection pyodbc connect cursor connection cursor while True time sleep 1 cursor execute INSE
  • Python的Multiprocessing的进程通信

    我了解了Python多进程的Pipes Queues Shared ctypes Objects Managers 我想将它们与Linux的匿名管道 命名管道 共享内存 套接字等进行比较 我现在有以下问题 Python 多处理的管道和队列模
  • 使用 R 并行化抓取网页

    我正在尝试抓取大量网页以便稍后分析它们 由于 URL 数量巨大 我决定使用parallel包装连同XML 具体来说 我正在使用htmlParse 函数来自XML 与使用时效果很好sapply 但与使用时会生成 HTMLInternalDoc
  • 支持工具栏的自定义视图不使用全宽

    我正在使用 support v7 的工具栏 我添加了自定义视图 但自定义视图似乎不遵守 match parent 它只会延伸到它看到的第一个图标 有谁知道解决这个问题吗 或者工具栏不应该这样使用 我的代码
  • 使用 POEdit——仅搜索特定域中的字符串

    我创建了一个想要翻译的 WordPress 主题 在我的主题中 我使用了一些翻译woocommerce i e 这些 woocommerce 字符串 我自然不想再次翻译 因为它们已经被翻译了 但是当我使用 poedit 扫描我的主题时 它当
  • java.sql.SQLException:I/O 错误:SSO 失败:本机 SSPI 库

    我有两个网络应用程序需要在 Tomcat 6 MS SQL 2008 和 JTDS 1 2 2 作为驱动程序上运行 如果我只启动一个 Web 应用程序 一切都工作正常 但是一旦我启动第二个应用程序 我就会收到以下错误 顺序无关紧要 java
  • 获得Facebook的读取权限后获得publish_action权限

    我正在整合Facebook登录我的应用程序 我能够获得读取权限 但如何从 Facebook SDK 获得发布权限 这就是我请求读取权限的方式 Override public void onClick View v Session curre
  • 如何让 addEventListener 与 select 标签一起使用

    HTML
  • event.preventDefault() 不适用于 android chrome

    event preventDefault 不适用于 Chrome Android 操作系统 而同样的操作也适用于 chrome IOS 我什至使用了 event stopPropagation event stopImmediateProp
  • Spring-Boot 多模块无法从另一个模块读取属性文件

    我搜索了高低 但仍然无法找到这个非常烦人的问题的简单答案 我遵循了这个伟大的指南 JWT 与多服务应用程序一切都很好 但在指南的最后 建议我们创建一个 config service module 我已经完成了 问题是我无法覆盖 JwtCon
  • 在 ICS 或 JB 上的任务管理器中显示自定义应用程序映像

    据我所知 在 Android 4 0 或更高版本 上 默认任务管理器显示程序的最后一个屏幕截图 程序图标没有左上角 看图片 我的问题是如何将任务管理器中的应用程序图像 不是图标 更改为自定义 别问我为什么 我只是需要 经过一番研究 我发现了
  • sed 中的“0,/xxx”是什么意思?

    脚本中使用的 sed 命令如下 sed i 0 ENABLE DEBUG s ENABLE DEBUG ENABLE DEBUG YES MakeConfig 我知道 s ENABLE DEBUG ENABLE DEBUG YES 是替换行
  • R:输出带有小计的类似数据透视表

    我正在尝试在 R 中进行交叉制表 并使其输出尽可能类似于 Excel 数据透视表中的输出 目标是用 R Markdown 自动生成的报告取代使用 Excel 和 Word 手动生成的报告 数据整理和图表已经处理完毕 但缺少一些表格 所以 给
  • 有没有比这更好的方法从 PrintDocument 获取页数?

    这是我想出的最好的 public static int GetPageCount PrintDocument printDocument printDocument PrinterSettings PrintFileName Path Ge
  • WebView不会播放任何声音

    我使用最简单的 WebView 实例 到目前为止 所需的一切都运行良好 除了播放声音之外 javascript 调用的声音和 html5 音频标签都无法通过此 WebView 工作 public class MainActivity ext
  • 如何重写另一个基类中的函数?

    我不太确定要使用的术语 但这是我的示例 class Base public virtual void test 0 class Mixin public virtual void test class Example public Base
  • 带有 Apache CXF 的 WS-Security UsernameToken

    我有一个与 SOAP 服务交互的 java 应用程序 我使用 WSDL 通过 CXF 生成 java 客户端 但我需要使用 ws security 来验证我的调用 我正在寻找一种纯代码方法来执行此操作 并且我没有任何 xml 配置 这是我尝
  • 如何在 Python 中读取通用数据格式 (CDF)

    我需要使用 python 读取 CDF 文件 我找到了图书馆 但我不明白如何使用它 例如在这个 Python 库 我需要下载CDF lib 我不知道在哪里下载 有 CDF 的下载页面 但似乎与该库无关 The answer miraculi
  • 如何以编程方式区分android中连接的蓝牙设备?

    是蓝牙耳机还是手机 如何在 Android 代码中区分蓝牙耳机和支持蓝牙的 Android 设备 我正在开发一个小型应用程序 因为我具有阻止通过蓝牙传输数据的功能 但它需要允许通过蓝牙耳机进行通信 我参考了他们建议我的示例和代码 仅配对 取
  • Hibernate @ManyToMany joinTable - OrderBy 使用连接表的字段

    有3张表 TABLE A ID A field1 fieldN TABLE B ID B field1 fieldN 表 A B ID A ID B订单字段 public class A ManyToMany JoinTable name