赞
踩
select nextval('schemaName.sequenceName') as id from generate_series(starter: Integer, stop: Integer)
其中generate_series为一个函数用于获取带序数的行,返回的行数为stop-starter+1
使用如下代码获得序列的当前值
select currval('schemaName.sequenceName);
会提示
“currval of sequence “centrelink_request_batch_number” is not yet defined in this session”
这是因为当前序列还没有使用过,缓存中无值,如果使用nextval获得过一次序列的值,就可以使用currval获得序列的当前值了
货币类型,存储具有固定精度的货币数量,如下表所示。小数精度由数据库的lc_money设置决定。表中所示的范围假设有两个小数。输入可以接受多种格式,包括整数和浮点文本,以及典型的货币格式,如’$1,000.00’。输出通常是后一种形式,但取决于地区。
由于这种数据类型的输出对local敏感,因此将货币数据加载到具有不同lc_money设置的数据库中可能无法工作。为了避免出现问题,在将其储存到新数据库之前,请确保lc_monetary的值与转储的数据库中的值相同或相等。
numeric、int和bigint数据类型的值可以转换为money。从实数和双精度数据类型转换可以通过先转换为数值类型来实现,例如:
SELECT '12.34'::float8::numeric::money;
但是,不建议这样做。浮点数不应该用于处理货币,因为可能会出现舍入错误。money值可以转换为numeric而不丢失精度。但如果转换为其他类型可能会丢失精度,面且必须分两个阶段完成:
SELECT '52093.89'::money::numeric::float8;
当一个货币值除以另一个货币值时,结果是double类型(即,一个纯粹的数字,而不是money类型),在除法中,货币单位相互抵消。
JPA的@Query注解中,如果不加nativeQuery=true,则写的SQL是JPQL,而JPQL是不支持limit的,如果加入nativeQuery=true,则写的SQL是原生SQL,而原生SQL是支持limit的,因此,如果要使用limit,则需要在@Query中加入nativeQuery=true
媒体表 @Entity public class Media implements Serializable { ......略 @OneToMany(cascade=CascadeType.REMOVE) @JoinColumn(name = "FK_Media_id",updatable=false) //FK_Media_id为MediaComment表中的外键 private Set<MediaComment> mediaCommetnSet; // 媒体评论表 } 媒体评论表 @Entity public class MediaComment implements Serializable { ......略 @ManyToOne @JoinColumn(name = "FK_Media_id") private Media media; }
在updatable=false不添加时,会发现删除媒体表时,会发生更新语句FK_Media_id不能为NULL的错误提示,添加updatable=false即可解决该问题。
参考:https://blog.csdn.net/zbzhangzi/article/details/84827895
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。