如何查询以二进制形式存储在数据库中的 UUID(JPA/Hibernate/MySQL)

2024-02-12

我有一个基于 Java/JPA/Hibernate/MySQL 的应用程序。我想使用 UUID 进行对象标识,但我想确保数据库性能不会受到影响。

我发现了这篇很棒的博客文章JPA 和 UUID 主键 http://www.thebinaryidiot.com/archives/2011/06/25/jpa-and-uuid-primary-keys/这让我取得了一些进展。请注意如何通过以二进制形式存储 UUID(与字符串表示形式相比)来优化 UUID 的存储。

它解决了部分问题,因为现在我们可以有效地将对象插入数据库。

但是,现在当我想使用 EntityManager.createQuery 从数据库查询时遇到问题。是否可以/需要查询二进制数据?或者,我应该将字符串 UUID 与二进制版本一起存储以方便查询吗?


使用 Hibernate 4.1.2 和 MySQL-Connector-J 5.1.18 进行测试,您可以定义 UUID 字段:

@Entity
class EntityType {
    @Column( columnDefinition = "BINARY(16)", length = 16 )
    private UUID id;
}

...并使用 UUID 实例进行查询:

UUID id = ....;
EntityType result = em.createQuery( 
   “SELECT x FROM EntityType x WHERE x.id = ?1″, EntityType.class )
   .setParameter( 1, id ).getSingleResult();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查询以二进制形式存储在数据库中的 UUID(JPA/Hibernate/MySQL) 的相关文章

随机推荐

  • Android:使用FLAG_SECURE方法后无法截图

    出于安全原因 我想在应用程序进入后台时隐藏应用程序的内容 了解使用下面的方法可以完成这项工作 但我希望屏幕截图功能仍然有效 getWindow addFlags WindowManager LayoutParams FLAG SECURE
  • 稀疏哈希映射对于特定数据非常慢

    tl dr 为什么关键查找sparse hash map对于特定数据 速度变慢约 50 倍 我正在测试速度关键查找 for sparse hash map来自 Google 的稀疏哈希库 使用我编写的非常简单的 Cython 包装器 哈希表
  • 尝试使用 Django 发送电子邮件时出现“[Errno 101] 网络无法访问”

    由于某种原因 我在尝试使用 Django 发送电子邮件 使用 gmail 时收到此错误 Errno 101 Network is unreachable 奇怪的是 它似乎只发生在我的网络应用程序在我的服务器 bluehost 上运行时 在本
  • 如何使用自定义行为设置折叠工具栏的背景以适合整个屏幕

    我正在关注一个很好的存储库 它展示了如何使折叠工具栏的自定义行为WhatsApp 个人资料折叠工具栏 https github com anton46 WhatsApp ProfileCollapsingToolbar 我不喜欢的是 当工具
  • HTML 选取框在 iOS 5.1 中不工作

    请看下面的函数 void loadHTMLinWebView objWebView UIWebView alloc initWithFrame CGRectMake 0 0 self frame size width self frame
  • 淘汰赛换行值绑定

    我在用Mathias Bynen 的占位符代码 https github com mathiasbynens jquery placeholder我想将它与淘汰赛一起使用 如果我做一个简单的自定义绑定 如下所示 ko bindingHand
  • Win RT XAML 中的布尔到可见性转换器第一次无法工作

    今天在 Windows RT Windows 商店应用程序 的 XAML 中工作时很奇怪 当IsValid true从我的视图模型设置我的布尔到可见性转换器第一次不起作用 我的路径保持隐藏 但随后确实显示正确的可见性 这是一个错误 还是可能
  • Android Scrollview 具有 videoview 会出现问题

    我有一个位于滚动视图内的视频视图 当我滚动滚动视图时 视频视图不会随之滚动 就好像它的位置是固定的一样 这是我的布局
  • 如何从 C# 中的 URL 下载文件?

    从 URL 路径下载文件的简单方法是什么 using var client new WebClient client DownloadFile http example com file song a mpeg a mpeg
  • 量角器需要密码才能登录 => 不安全?

    我开始使用 Protractor 进行 e2e 测试 要测试某些页面 我首先需要登录 现在我有这部分用于输入密码 var passInput element by id Passwd passInput sendKeys test 现在 当
  • 如何获取 eq() 值?

    这可能吗 为了让我得到eq 价值 例如 如果我单击li eq 2 var x会变成2 这是代码 numbers ul li click function x this eq val alert x The index what is thi
  • 从 Uri 转换位图返回 null [重复]

    这个问题在这里已经有答案了 在我的 Android 应用程序中 我使用 Google 驱动器来选择图像和文件 对于文件 我的代码在大多数情况下都运行良好 不幸的是 在某些情况下图像导入不起作用 图像位图返回空值 下面是我用来将内容 URI
  • 我们如何处理 BDD 场景的微小排列?

    我喜欢 BDD 开发方法 但我遇到了一个问题 即该方法能走多远 这条来自 ThoughtWorks 的最新评论Radar http thoughtworks fileburst com assets thoughtworks tech ra
  • 使用 Guice AOP 在 Jersey 中进行方法拦截

    是否可以使用 Guice AOP 拦截 Jersey 资源上的带注释的方法 我已经成功配置了 Guice 与 Jersey 的依赖注入集成 没有任何问题 但是我配置的拦截器根本没有拦截我带注释的方法 web xml
  • 在 Bootstrap 3 的弹出窗口中放置一个表单? [复制]

    这个问题在这里已经有答案了 如何在 Bootstrap 3 中的弹出窗口中放置表单 a href class btn btn lg btn danger title Click It a 它给出了如下效果 我想在它的体内放置一个形式 我们怎
  • Rails 与非 Rails 数据库设计

    完全新手研究 Rails Rails 是否可以与不符合 Rails 默认命名和设计约定的只读模式一起使用 例如 我的数据库架构具有使用字符串列作为唯一主键的基表 例如 名为 Jobs 的基表可能具有定义为 Jobs Job 的唯一主键 并且
  • IntelliJ Idea - 在调试器中搜索值

    我需要知道是否可以在 IntelliJ Idea 的调试器中搜索值 示例 您有一个巨大的对象树 您需要找到设置为相同特定值的字符串变量 有什么办法可以做到这一点吗 展开此树以便您可以看到所有这些字符串 然后开始输入您要搜索的内容 快速搜索应
  • 在嵌套片段中使用 OptionsMenu

    我使用在我的主机活动中实现的 NavigationDrawer 模式菜单活动 我的导航有 3 个项目 项目 1 项目 2 项目 3 每个项目都绑定到一个片段 当我单击 Item 1 时 我显示了一个片段 A 它实现了具有多个片段 嵌套片段
  • 访问抽象类 (Scala) 中构造函数创建的字段

    我有一个实现一种方法的抽象类 我如何访问参数internalValue 由抽象类构造函数设置 abstract class Value internalValue Int def equal v Value Boolean def notE
  • 如何查询以二进制形式存储在数据库中的 UUID(JPA/Hibernate/MySQL)

    我有一个基于 Java JPA Hibernate MySQL 的应用程序 我想使用 UUID 进行对象标识 但我想确保数据库性能不会受到影响 我发现了这篇很棒的博客文章JPA 和 UUID 主键 http www thebinaryidi