Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate:SQL查询生成的值_Sql_Hibernate_Insert_Generated - Fatal编程技术网

Hibernate:SQL查询生成的值

Hibernate:SQL查询生成的值,sql,hibernate,insert,generated,Sql,Hibernate,Insert,Generated,我希望Hibernate3.3.0在插入持久化之前通过执行SELECT查询来生成一个值。这将是这样工作的: @Generated(GenerationTime.INSERT) @GenerateSQL("SELECT RANDOM() * 2") private int number; 我看过@Generated,这对触发器很有用。我不想使用触发器 我还研究了@Formula,它是只读的 那么,注释的正确组合是什么?谢谢 我希望Hibernate3.3.0在插入之前通过执行SELECT查询来生

我希望Hibernate3.3.0在插入持久化之前通过执行SELECT查询来生成一个值。这将是这样工作的:

@Generated(GenerationTime.INSERT)
@GenerateSQL("SELECT RANDOM() * 2")
private int number;
我看过@Generated,这对触发器很有用。我不想使用触发器

我还研究了@Formula,它是只读的

那么,注释的正确组合是什么?谢谢

我希望Hibernate3.3.0在插入之前通过执行SELECT查询来生成一个值

我认为这是不被支持的

备选方案1:您可以直接在代码中作为创建逻辑的一部分执行选择

备选方案2:使用Hibernate侦听器,提供对SessionFactory的引用,并从侦听器在onSave期间执行SELECT

那么,注释的正确组合是什么

设置默认值实际上不太受支持,请参见,最简单的解决方案是在列级别定义默认值。那将是我的选择3。下面是一个例子:

@Generated(GenerationTime.INSERT)
@Column(insertable=false, columnDefinition="INT DEFAULT 20") 
private int someNumber;
我不知道这是否是您的一个选项,我也不确定数据库是否支持在默认情况下使用RANDOM?顺便问一下,RANDOM*2怎么会变成int

我希望Hibernate3.3.0在插入之前通过执行SELECT查询来生成一个值

我认为这是不被支持的

备选方案1:您可以直接在代码中作为创建逻辑的一部分执行选择

备选方案2:使用Hibernate侦听器,提供对SessionFactory的引用,并从侦听器在onSave期间执行SELECT

那么,注释的正确组合是什么

设置默认值实际上不太受支持,请参见,最简单的解决方案是在列级别定义默认值。那将是我的选择3。下面是一个例子:

@Generated(GenerationTime.INSERT)
@Column(insertable=false, columnDefinition="INT DEFAULT 20") 
private int someNumber;

我不知道这是否是您的一个选项,我也不确定数据库是否支持在默认情况下使用RANDOM?顺便问一下,RANDOM*2怎么会变成int

广告1-嗯,我想我最终会得到这个。但这需要我将事务提升到更高的抽象级别。Ad RANDOM vs.int-好吧,你明白了:真正的用例是生成发票编号,而不仅仅是一个序列取消发票等@Ondra我想这是一个例子:但我明白了。不过,我没有更好的建议。广告1——好吧,我想我最终会得到这个。但这需要我将事务提升到更高的抽象级别。Ad RANDOM vs.int-好吧,你明白了:真正的用例是生成发票编号,而不仅仅是一个序列取消发票等@Ondra我想这是一个例子:但我明白了。不过,我没有更好的建议。