Hibernate:SQL查询生成的值
我希望Hibernate3.3.0在插入持久化之前通过执行SELECT查询来生成一个值。这将是这样工作的: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查询来生
@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我想这是一个例子:但我明白了。不过,我没有更好的建议。