You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在@GenericGenerator注解中显式指定schema名称?

解决方案

你可以通过以下两种任意一种方式为SequenceStyleGenerator指定schema:

  • 方式1:直接在序列名称中拼接schema前缀
    无需新增参数,直接修改sequence_name的参数值,格式为{目标schema名}.{序列名}即可,示例:
    @org.hibernate.annotations.Parameter(name = "sequence_name",value = "你指定的schema名.PNO_SEQ")
    
  • 方式2:新增schema专属配置参数
    Hibernate的SequenceStyleGenerator原生支持schema配置项,你只需在参数列表中新增对应配置即可,优先级高于全局默认的schema配置,修改后的完整代码如下:
    public class PMEntity {
      @Id
      @GeneratedValue (strategy =  GenerationType.SEQUENCE, generator = "PNO_SEQ")
      @GenericGenerator(name = "PNO_SEQ", strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
              parameters = {
                      @org.hibernate.annotations.Parameter(name = "sequence_name",value = "PNO_SEQ"),
                      // 新增这行配置指定schema
                      @org.hibernate.annotations.Parameter(name = "schema",value = "你要使用的schema名称"),
                      @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"),
                      @org.hibernate.annotations.Parameter(name = "increment_size", value = "1")
              })
      @Column(name = "CPNO")
      private String plyNumber;
    }
    
    注意如果你的数据库对标识符大小写敏感,需要保证配置的schema名称、序列名称和数据库中实际的名称大小写完全匹配。

内容的提问来源于stack exchange,提问作者agarwalsukant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:18:04