如何将模型的genericgenerator中的参数传递给另一个类(IdGenerator)

塔尔米兹·哈米德

我想在休眠中使用自定义 id 生成器。这是我的模型:

@Entity(name="Poli")
@Table(name="POLI")
public class Poli extends DefaultEntityImpl implements Serializable{

    @Id 
    @GenericGenerator(
            name = "string-sequence", 
            strategy = "id.rekam.medis.service.generator.IdGenerator",
            parameters = {
                @org.hibernate.annotations.Parameter(
                    name = "sequence_name", 
                    value = "pol_seq"),
                @org.hibernate.annotations.Parameter(
                    name = "sequence_prefix", 
                    value = "POL-")                
            })
    @GeneratedValue(
            generator = "string-sequence",
            strategy = GenerationType.SEQUENCE)
    @Basic(optional = false)
    @Column(name = "ID",nullable = false)
    private String id;

    @Column(name = "NAMA", length = 10)
    private String nama;   

    //getter setter
}

我的 IdGenerator 类是:

    public class IdGenerator implements  IdentifierGenerator, Configurable {

    private static final Log logger = LogFactory.getLog(IdGenerator.class);
    private String sequenceName;
    private String sequencePrefix;
    public static final String SEQUENCE_PREFIX = "sequence_prefix";


    @Override
    public Serializable generate(SessionImplementor session, Object obj) throws HibernateException {
        Connection con = session.connection();
        Long nextValue = null;
        try {
            PreparedStatement p = con.prepareStatement(" SELECT POL_SEQ.NEXTVAL FROM DUAL ");
            ResultSet rs = p.executeQuery();
            while(rs.next()) {
                nextValue = rs.getLong("nextVal");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        if(logger.isDebugEnabled()) logger.debug("new id is generated:" + nextValue);

        return "POL-" + nextValue;
    }    

    @Override
    public void configure(Type type, Properties params, Dialect dlct) throws MappingException {
        sequencePrefix = ConfigurationHelper.getString(SEQUENCE_PREFIX, params,"SEQ_");
    }
}

我的目标是,我希望我的 IdGenerator 类可用于所有实体/模型。只需要更改实体中的参数即可。

我的问题:如何捕获IdGenerator 类中的参数?我想在 IdGenerator 类中获得“pol_seq”和“POL-”。

热烈的问候,

塔尔米兹

本杰明·毛雷尔

这就是您实现可配置接口的目的。

configure()方法已在这些参数的Properties参数。看看它的 JavaDoc,它基本上是一个 HashMap,所以就做

params.getProperty("sequence_prefix");

也许你想把这些名字变成常量,要么是 public static final Strings,要么是更好的 Enums。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python MYSQL tupple问题。如何将参数传递给另一个类中执行查询的函数

来自分类Dev

如何将&rest参数传递给emacs lisp中的另一个函数?

来自分类Dev

如何将参数数组传递给JavaScript中的另一个函数?

来自分类Dev

如何将UIViewController传递给Swift中的另一个类?

来自分类Dev

如何将一个过程的输出作为参数传递给 tcl 中的另一个过程

来自分类Dev

如何将ArrayList中的类从一个活动传递给另一个活动

来自分类Dev

如何将ArrayList中的类从一个活动传递给另一个活动

来自分类Dev

如何将参数传递给AsyncTask,并将结果从另一个类返回到字段变量?

来自分类Dev

如何将参数传递给AsyncTask,并将结果从另一个类返回到字段变量?

来自分类Dev

如何将模板化类实例作为模板参数传递给另一个模板?

来自分类Dev

如何将参数传递给作为另一个函数参数的函数

来自分类Dev

gmock:如何将模拟类的指针传递给另一个类?

来自分类Dev

将类的方法作为参数传递给C ++中的另一个类

来自分类Dev

如何将主类中的TCP连接变量传递给另一个JFrame类?

来自分类Dev

如何将模型传递给另一个区域的控制器?

来自分类Dev

如何将switch参数传递给另一个PowerShell脚本?

来自分类Dev

如何将输出作为参数传递给另一个命令?

来自分类Dev

Perl:如何将ARGV参数传递给另一个脚本?

来自分类Dev

Python:如何将ARGV参数传递给另一个脚本?

来自分类Dev

如何将命令输出作为多个参数传递给另一个命令

来自分类Dev

如何将tanh函数作为参数传递给另一个函数?

来自分类Dev

如何将终端命令作为参数传递给另一个命令

来自分类Dev

如何将参数4..99传递给另一个函数

来自分类Dev

如何将参数传递给另一个脚本生成的脚本

来自分类Dev

如何将引用的参数传递给另一个程序

来自分类Dev

如何将函数作为参数传递给另一个函数?

来自分类Dev

如何将泛型函数作为参数传递给另一个函数?

来自分类Dev

如何将函数的所有参数传递给另一个命令?

来自分类Dev

如何将命名参数传递给另一个函数需要的函数?

Related 相关文章

  1. 1

    Python MYSQL tupple问题。如何将参数传递给另一个类中执行查询的函数

  2. 2

    如何将&rest参数传递给emacs lisp中的另一个函数?

  3. 3

    如何将参数数组传递给JavaScript中的另一个函数?

  4. 4

    如何将UIViewController传递给Swift中的另一个类?

  5. 5

    如何将一个过程的输出作为参数传递给 tcl 中的另一个过程

  6. 6

    如何将ArrayList中的类从一个活动传递给另一个活动

  7. 7

    如何将ArrayList中的类从一个活动传递给另一个活动

  8. 8

    如何将参数传递给AsyncTask,并将结果从另一个类返回到字段变量?

  9. 9

    如何将参数传递给AsyncTask,并将结果从另一个类返回到字段变量?

  10. 10

    如何将模板化类实例作为模板参数传递给另一个模板?

  11. 11

    如何将参数传递给作为另一个函数参数的函数

  12. 12

    gmock:如何将模拟类的指针传递给另一个类?

  13. 13

    将类的方法作为参数传递给C ++中的另一个类

  14. 14

    如何将主类中的TCP连接变量传递给另一个JFrame类?

  15. 15

    如何将模型传递给另一个区域的控制器?

  16. 16

    如何将switch参数传递给另一个PowerShell脚本?

  17. 17

    如何将输出作为参数传递给另一个命令?

  18. 18

    Perl:如何将ARGV参数传递给另一个脚本?

  19. 19

    Python:如何将ARGV参数传递给另一个脚本?

  20. 20

    如何将命令输出作为多个参数传递给另一个命令

  21. 21

    如何将tanh函数作为参数传递给另一个函数?

  22. 22

    如何将终端命令作为参数传递给另一个命令

  23. 23

    如何将参数4..99传递给另一个函数

  24. 24

    如何将参数传递给另一个脚本生成的脚本

  25. 25

    如何将引用的参数传递给另一个程序

  26. 26

    如何将函数作为参数传递给另一个函数?

  27. 27

    如何将泛型函数作为参数传递给另一个函数?

  28. 28

    如何将函数的所有参数传递给另一个命令?

  29. 29

    如何将命名参数传递给另一个函数需要的函数?

热门标签

归档