使用 JPA 指定索引(非唯一键)

2023-11-30

你如何定义一个字段,例如email因为有一个使用 JPA 注释的索引。我们需要一个非唯一的密钥email因为每天这个字段上有数百万个查询,而且如果没有密钥,速度会有点慢。

@Entity
@Table(name="person", 
       uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"}))
public class Person {
    // Unique on code and uid
    public String code;
    public String uid;

    public String username;
    public String name;
    public String email;
}

我已经看到了 hibernate 特定的注释,但我试图避免供应商特定的解决方案,因为我们仍在 hibernate 和 datanucleus 之间做出决定。

UPDATE:

从 JPA 2.1 开始,您可以执行此操作。看:此位置不允许使用注释 @Index


使用 JPA 2.1 您应该能够做到这一点。

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Table;

@Entity
@Table(name = "region",
       indexes = {@Index(name = "my_index_name",  columnList="iso_code", unique = true),
                  @Index(name = "my_index_name2", columnList="name",     unique = false)})
public class Region{

    @Column(name = "iso_code", nullable = false)
    private String isoCode;

    @Column(name = "name", nullable = false)
    private String name;

} 

Update:如果您需要创建两个或更多列并为其建立索引,您可以使用逗号。例如:

@Entity
@Table(name    = "company__activity", 
       indexes = {@Index(name = "i_company_activity", columnList = "activity_id,company_id")})
public class CompanyActivity{
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JPA 指定索引(非唯一键) 的相关文章

  • Gradle 同步失败:配置项目“:lib”时出现问题

    我正在尝试在 android studio 中构建一个项目 但它总是失败 并出现名为 org gradle api ProjectConfigurationException A problem occurred configuring p
  • while循环内的递归,它是如何工作的?

    你能告诉我这段java代码是如何工作的吗 public class Main public static void main String args Strangemethod 5 public static void Strangemet
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what
  • 使用 IntentService 使用 Camera2 拍照

    我正在尝试创建一个可以拍照但不显示预览的应用程序 使用本教程 https www youtube com watch v oPu42I0HSi4 https www youtube com watch v oPu42I0HSi4如果我使用和
  • 无法获取未知属性“运行时”Gradle 7.0

    我最近切换到 gradle 7 0 现在无法构建我的项目 jar 并出现错误 无法获取 org gradle api internal artifacts configurations DefaultConfigurationContain
  • 在 IIS 中运行 Java Web 应用程序

    有人找到了在 IIS 中运行 Java Web 应用程序的方法吗 在我看来 编写一个将 Jetty 或自定义 servlet 容器与 IIS 集成的 ISAPI 插件 这个词正确吗 应该是完全可能的 这样做的好处是 许多优秀的高端 Java
  • Android Studio 中没有参考文档

    昨天刚刚出现了一个新问题 当我将鼠标悬停在方法上或按 Ctrl Q 时 我通常会获取该特定方法的文档信息 但现在我只是得到 按 Ctrl QSharedPreferences getLong Following external urls
  • 如何暂停程序直到按下按钮?

    我使用从 jframe 扩展的类 它有一个按钮 我在程序中使用它 我希望当在我的程序中运行 jframe 时我的整个程序暂停 直到我按下按钮 我该怎么做 in c getch 做这个 我想要一个这样的功能 通过睡眠暂停执行 http dow
  • 在 Java 中停止线程? [复制]

    这个问题在这里已经有答案了 我正在编写一段代码 该代码连接到服务器 使用该连接生成一堆线程并执行一堆 东西 在某些情况下 连接会失败 我需要停止一切并从头开始使用新对象 我想在对象之后进行清理 但在线程上调用 thread stop 但此方
  • 如何将选定的项目移动到列表顶部

    List
  • 使用 Gradle 构建 Kotlin + Java 9 项目

    我对 Gradle 老实说 还有 Java 9 相当陌生 我正在尝试使用 Gradle 构建一个混合了 Java 9 和 Kotlin 的简单库项目 更详细地说 Java中有一个接口 Kotlin中有一个实现 我会用 Kotlin 做所有事
  • 使用java将文件从GCS存储桶传输到SFTP服务器

    我能够从 GCS 存储桶读取文件 但所有库都喜欢jsch将文件传输到 SFTP 服务器时会查找文件路径 而不是内存中的文件 我不想将从GCS读取的文件写入磁盘 如何将内存中的文件传输到SFTP 我假设您想上传内存中的数据 JSch 实际上有
  • 为什么我用Java计算的结果是错误的?

    我使用这段代码来计算一些东西 但几乎在所有情况下结果都是 0 0 为什么 编译器中没有警告或错误 private void jButton1ActionPerformed java awt event ActionEvent evt try
  • 选择活动时运行时崩溃

    首先我想说我几乎没有 Android 经验 这是我在 Android 中的第一个项目 而且我的老师不太擅长教学 所以我对任何过度的无知表示歉意 在进一步讨论之前先解释一下 我的应用程序的目标本质上是能够记录您在某些活动上花费了多少时间 记录
  • 嵌套异常是java.lang.NoClassDefFoundError:无法初始化类org.springframework.jdbc.support.SQLErrorCodesFactory

    我正在使用 spring 和 jdbctemplate 编写一个应用程序 但是我遇到了以下错误 org springframework web util NestedServletException Handler processing f
  • 如何列出所有已加载的 Spring bean 定义文件

    在大型企业系统中 并不总是清楚在 ApplicationContext 构建期间导入了哪些文件 有没有办法列出过程中加载的所有文件 我知道如何列出加载的属性文件 但不知道导入的 bean 文件 更新示例 文件 1 applicationCo
  • 使用用户名和密码登录 LinkedIn 失败

    LinkedIn使用oauth登录其api 服务器中无法登录api 我尝试使用http请求登录linkedin并获取oauth verifier 但我得到了这样的回应 很抱歉 出现了问题 你的申请 请确保您 启用cookie并重试 或点击此
  • 找不到满足版本限制的“com.google.code.findbugs:jsr305”版本

    当生成签名的 APK 进行发布时 我收到此错误消息 Cannot find a version of com google code findbugs jsr305 that satisfies the version constraint
  • 使用 DataMapper 而不是 ActiveRecord [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 应用服务器如何注入私有字段?

    我看到这个问题 注入私有 包或公共字段或提供 setter https stackoverflow com questions 2021716 inject into private package or public field or p

随机推荐

  • Java 的 WS-Discovery 实现 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 JAX WS RI Axis2 CXF 或其他工具包是否有 WS Discovery 规范的实现 据我所知 唯一的 Java 实现是这个 http
  • 动态生成属性和空参数的表达式

    Note 请仔细注意 这不是重复的 我需要创建以下 Lambda 表达式 gt model property 模型及其属性将在运行时确定 我想要一个接受模型和属性并生成表达式的函数 public object GenerateLambda
  • 当(很快)有 1000 个 TLD 时,使用 JavaScript 进行电子邮件验证

    我刚刚读过一篇文章其中指出 互联网域名地址向新后缀浪潮开放 互联网命名委员会批准巨大 扩大批准的领域 扩展名为 hotel bank 或 体育拍卖可能 com 首次推出二十六年后 官方已向世界揭晓 消除了严格的监管规定 网站命名 整体开放
  • 设置 CALayer 渐变背景

    我正在尝试向我创建的 CALayer 添加渐变 我可以使用以下命令设置 CALayer 的背景颜色 self colorLayer CALayer layer self colorLayer setBackgroundColor color
  • 正则表达式 C# 从 标签中提取 url

    然而 我试图从标签中提取 URL 而不是获取https website com id1 我正在获取标签链接文本 这是我的代码 string text a href MyLink a string parsed Regex Replace t
  • SqlCommandBuilder() 为基础表而不是视图创建插入/更新

    我有两个模式 如下所示 模式 数据 gt 保存表 没有人可以从外部访问它们 Schema ui gt 保存可从外部访问的视图 这个想法是您可以在这些视图上选择 删除 更新 插入 因此 我正在做所有权链 例如 create table dat
  • 重载函数隐藏在派生类中

    在派生类中如果我从基类重新定义 重载函数名称 那么这些重载函数对于派生类来说是不可访问 可见的 为什么是这样 如果我们不在派生类中重写基类的重载函数 那么该函数的所有重载版本都可用于派生类物体 这是为什么 这背后的原因是什么 如果您在编译器
  • 以类型安全的方式将方法的代码作为参数传递

    将方法作为参数传递不是问题 type TSomething class Msg string procedure Show end procedure TSomething Show begin ShowMessage Msg end ty
  • Android webview 视频自动播放成功,但相同的 apk 在 android Tv mini pc 上失败?

    我已经设法让我的视频自动播放在我的 webview apk 中 在我的手机 4 1 2 上进行了测试并且它可以工作 而在我的 Android 迷你电脑 4 2 上必须单击才能开始播放 WebChromeClient 可能是原因吗 如果它与
  • Xcode beta 6 iOS 8:模拟器不工作

    我无法成功启动模拟器 一旦我启动 IOS 模拟器 就会出现此错误 无法启动 IOS 模拟器 在 IOS 模拟器错误之后 我从 Xcode 读取中收到错误 无法在模拟器中运行应用程序运行时遇到错误 域 DTiPhoneSimulatorErr
  • VBScript 中变量的作用域

    考虑下面的代码 Option Explicit Dim Count Count 4 Case I Sub Display1 MsgBox Count End Sub Case II Sub Display2 Count MsgBox Cou
  • 将 utf-8 字符串转换为波斯语 unicode

    我有以下字符串作为 utf 8 我想将其转换为波斯语 unicode 这个网站正确地进行转换 结果是 我测试了很多方法和途径但无法解决这个问题 例如这两行没有产生预期的结果 string result Encoding GetEncodin
  • .where(...).Any() 与 ..Any(...) 之间的性能差异[重复]

    这个问题在这里已经有答案了 可能的重复 LINQ 扩展方法 Any 与Where 与Exists 给定内存中的对象列表 我运行以下两个表达式 myList where x gt x Name bla Any vs myList Any x
  • 如何使用htaccess从www重定向到https www?

    我需要执行以下操作 我当前的地址如下 https www domain com 我想用 htaccess 重定向 www domain com 至https www domain com and http domain com TO htt
  • Git 撤消推送合并并删除其历史记录

    我意外地合并到了 master 并推送了它 现在 master 拥有了 dev 的所有提交 我想恢复 master 的提交并删除其历史记录而不更改 dev 我怎样才能做到这一点 可以使用以下命令删除最后一次提交 git reset hard
  • tkinter 绑定函数与循环中的变量[重复]

    这个问题在这里已经有答案了 我有这段代码可以在循环中创建一系列绑定 from Tkinter import keys 0 m 1 n 2 o def SomeFunc event None number 11 print keys numb
  • 将字符串转换为双精度型

    我正在尝试转换字符串 const char argv to a double精度浮点数 int main const int argc const char argv int i double numbers argc 1 for i 1
  • 编写最简单的汇编调试器

    假设我有以下汇编代码 我想单步执行 globl start start nop mov 60 eax syscall 我可以附加的最简单的方法是什么ptrace要单步运行这个吗 我通常这样做gdb但很好奇如何以最原始的方式手动执行此操作 没
  • MySQL 自定义主键生成器

    我为我们的预订系统编写了一个发票模块 因此 当我创建新发票时 我会通过 MySQL 自动生成主键 然而目前这只是一个简单的整数计数 问题是我们有义务提供 year id 形式的发票号码 其中 year 例如 2013 年 id 是每年从 1
  • 使用 JPA 指定索引(非唯一键)

    你如何定义一个字段 例如email因为有一个使用 JPA 注释的索引 我们需要一个非唯一的密钥email因为每天这个字段上有数百万个查询 而且如果没有密钥 速度会有点慢 Entity Table name person uniqueCons