如何覆盖@SequenceGenerator(name = "idGenerator",sequenceName = "HIBERNATE_SEQUENCE",allocationSize = 50)

2023-12-11

通常 Id 列如下所示,它工作得很好并且生成了序列值

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "idGenerator")
@SequenceGenerator(name = "idGenerator", sequenceName = "HIBERNATE_SEQUENCE", allocationSize = 50)
@Column(name = "ID")
public Long getId()
{ return mId; }

现在我想要的是,如果在程序中设置 xyz.setId(200) ,它应该将 Id 保存为 200,而不是由序列生成的 Id。现在我该如何实现这一目标?我还想使用这两个属性sequenceName =“HIBERNATE_SEQUENCE”,allocationSize = 50。


最后,经过一天的使用时间,我深入到罐子里,得到了解决方案。 我用了@GenericGenerator(name = "idGenerator", strategy = "com.jayash.domain.UseExistingOrGenerateIdGenerator")

public class UseExistingOrGenerateIdGenerator extends SequenceHiLoGenerator {
    @Override
    public Serializable generate(SessionImplementor session, Object object) throws HibernateException {
        Serializable id = session.getEntityPersister(null, object).getClassMetadata().getIdentifier(object, session);
        return id != null ? id : super.generate(session, object);
    }

    @Override
    public void configure(Type type, Properties params, Dialect dialect) throws MappingException {

        params.put(org.hibernate.id.SequenceGenerator.SEQUENCE, "HIBERNATE_SEQUENCE");


        params.put(SequenceHiLoGenerator.MAX_LO, String.valueOf("49"));

        super.configure(type, params, dialect);
    }

}

Yipee 效果很好

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

如何覆盖@SequenceGenerator(name = "idGenerator",sequenceName = "HIBERNATE_SEQUENCE",allocationSize = 50) 的相关文章

随机推荐

  • 将 busybox 推入 Android 模拟器

    我已经下载了 mips android 的源代码并完成了 make 并让模拟器运行 我想将 busybox 推入模拟器中 我已经下载了静态编译的 busybox 二进制文件 我应该将其放置在哪个目录下 我应该如何将 busybox 推送到模
  • 高效的笛卡尔积算法

    有人可以为我演示一种比我当前使用的算法更有效的笛卡尔积算法吗 假设有一个 我环顾四周并用谷歌搜索了一下 但看不到任何明显的东西 所以我可能会错过一些东西 foreach int i in is foreach int j in js Pai
  • 如何在build.gradle文件中添加OJDBC6.jar?

    我正在应用程序中连接到 Oracle Db 并尝试使用 gradle build 来构建应用程序 我无法从 gradle 构建访问 OJDBC6 jar 请有人告诉我 我们如何将 ojdbc6 jar 添加到 build gradle 文件
  • Jelly Bean webview 应用程序无法完美响应 touchend 事件

    我的 webview 应用程序与早于 Jelly Bean 的 Android 版本中的 touchend 事件配合得很好 但在 Jelly Bean 中 touchend 事件并不可靠 特别是在可滚动的 div 上 有时不会触发 touc
  • ANDROID:使用 strings.xml 背后的主要思想是什么?

    有人请解释一下使用的主要思想是什么字符串 xml 我认为这对于多语言支持很有用 但我们如何为此组织它呢 如果我不想在 Android 应用程序中使用多语言支持 我是否需要它 这个想法是 它代表各种字符串的单个位置 因此您的代码不会充斥着字符
  • window.blur() 不适用于 Firefox 4

    我有一个功能 激活后会在当前浏览器窗口下打开一个新窗口作为弹出窗口 它在所有过去版本的 IE 和 FF 上都工作得很好 现在它已经停止工作了 显然 Mozilla 更改了 FF 4 的一项设置来防止这种情况发生 http support m
  • React-leaflet 创建自定义组件

    我想使用react leaflet 创建一个自定义组件 显示鼠标的实际位置 x y 但我不知道如何创建它 我发现react leaflet control但好像不是最新的 当然我看了api文档https react leaflet js o
  • Laravel phpunit 总是 404

    环境 PHP 7 0 macOS apache 代码是 public function testBasicExample this gt visit 运行 phpunit 结果是 1 ExampleTest testBasicExample
  • 单击按钮时如何为网站上的所有链接添加下划线?

    经过一个小时的尝试和错误创建一个简单的脚本后 我向您寻求帮助 我想创建一个button 点击后会为所有添加下划线样式a网站上的选择器 我已经写了一个简单的函数 但不幸的是它不起作用 有大量的a整个页面的选择器 所以我不会发出整个页面的代码
  • Visual Studio 项目依赖项

    我有一个 Visual Studio Net 解决方案 其中有许多项目 库 当我在自己的 PC 上本地工作时 没有问题 因为我倾向于重新编译那些我刚刚更改的库 并且所有内容都是同步的 问题是有时其他开发人员偶尔需要处理或查看我的代码 但在重
  • 复制并粘贴到 DataGridView 单元格中 (C#)

    我需要能够从一个应用程序复制一个或多个名称 使用普通复制命令 然后能够双击 DataGridView 中的文本单元格将数据粘贴到网格单元格中 关于如何实现这一目标有什么想法吗 我正在尝试最大程度地减少此功能的键盘使用 这实际上比您想象的要容
  • 将文件添加到文件夹时运行 .bat 文件的 Powershell 脚本

    我想监视 Windows 7 文件夹 并在将任何新文件添加到该文件夹 时运行 bat 文件 看来我应该能够使用安装在计算机上的 powershell 来执行此操作 我读过一些答案 例如this one但我还无法通过修改我所看到的内容来使任何
  • itext从现有pdf中获取字段坐标

    首先 我不是 Java 开发人员 我只需要小程序 它将从现有 pdf 文件中按字段名称输出字段坐标 当我从命令行调用我的类时 我将输入该坐标 如下所示 javac GetField java java GetField
  • UITableViewCellStyleSubtitle 单元格的分隔线不占全宽

    我已经准备好了一个简单的测试项目回答我在 GitHub 上的问题 使用时UITableViewCellStyleSubtitle细胞类型 称为Subtitle在 Xcode Interface Builder 中 由于某种原因 水平线没有到
  • MySQL 查询一堂课的书本费用

    我只需要一个 MySQL 行查询来执行以下操作 假设有两个简单的表 Class and Books Class ID Name Students1 公斤 202 年级 3 253 等级 5 30 Books ID ClassId Title
  • 如何从没有原型的对象创建具有默认原型的JS对象?

    背景 该模块请求参数例如能够解析key value hello universe到一个物体 key value hello universe 然而 模块作者认为返回的对象没有原型 换句话说 这个 混蛋 对象是由Object create n
  • 如果存在任何查询字符串,则 .htaccess 重定向?

    我目前有以下 htaccess
  • Android 中 fillwindow() 中的无效语句

    我是 Android 新手 在在这里提问之前我正在谷歌搜索 但在这个问题上我找不到答案 这个 stackoverflow com questions 4195089 也没有答案 In my test app on emulator i ha
  • SQL - 查询存储不一致的电话号码

    我们的数据库中有一个电话号码字段 我想做一个简单的查找查询 例如 SELECT FROM TABLE WHERE Phonenumber 555123456 但由于电话号码是由用户输入的并且没有标准化 因此我们并不真正知道它们是什么样的 可
  • 如何覆盖@SequenceGenerator(name = "idGenerator",sequenceName = "HIBERNATE_SEQUENCE",allocationSize = 50)

    通常 Id 列如下所示 它工作得很好并且生成了序列值 Id GeneratedValue strategy GenerationType SEQUENCE generator idGenerator SequenceGenerator na