Hibernate 序列配置详解
Hibernate 是一个开源的Java持久层框架,它对JDBC进行了封装,简化了数据库操作,在Hibernate中,序列(Sequence)是一种用于生成唯一标识符的数据库对象,本文将详细介绍Hibernate中序列的配置方法。
序列配置步骤
数据库中创建序列
在数据库中创建一个序列,以下以MySQL为例,创建一个名为
user_id_seq
的序列:
CREATE SEQUENCE user_id_seqSTART WITH 1INCREMENT BY 1;
在Hibernate配置文件中配置序列
在Hibernate的配置文件(如hibernate.cfg.xml)中,需要配置序列的名称,以下是一个示例:
jdbc:mysql://localhost:3306/mydb root password com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect false user_id_seq
在实体类中配置主键生成策略
在实体类中,需要使用
@GeneratedValue
注解指定主键的生成策略,以下是一个示例:
import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;@Entitypublic class User {@Id@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_seq_gen")@SequenceGenerator(name = "user_id_seq_gen", sequenceName = "user_id_seq")private Long id;// 其他属性和方法}
启动Hibernate会话
在启动Hibernate会话时,Hibernate会自动调用序列生成器来获取下一个序列值。
序列配置注意事项
Q1:为什么要在Hibernate中配置序列?
A1:在Hibernate中配置序列可以简化主键的生成过程,确保每个实体对象的主键都是唯一的。
Q2:如何修改实体类中的序列生成策略?
A2:要修改实体类中的序列生成策略,可以在
@GeneratedValue
注解中指定新的策略,或者在实体类中添加
@SequenceGenerator
注解,并修改其属性值。
什么是同分妄见 什么是别业妄见
典出永明延寿禅师宗镜录第七十四卷。 (所谓「别业妄见」,谓诸众生迷失真性,自起妄见,见有一切虚妄境界,或苦或乐;若人不失本真,即不见有虚妄境界。 譬如一人病目,夜见灯光别有圆影,五色重叠;不病目者,即不见灯别有圆影,是名别业妄见。 【明,一如《三藏法数》】所谓「同分妄见」,谓诸众生迷失真性,同见一切虚妄境界,同受苦乐,同业所感。 譬如一国之人,同见瘴恶不祥之事,是名同分妄见。 【明,一如《三藏法数》】.宗镜录第七十四卷云何二见?一者,众生别业妄见。 二者,众生同分妄见。 “云何名为别业妄见?阿难,如世间人目有赤眚,夜见灯光别有圆影,五色重迭。 于意云何?此夜灯明所现圆光,为是灯色?为当见色?阿难,此若灯色,则非眚人何不同见?而此圆影唯眚之观,若是见色,见已成色,则彼眚人见圆影者,名为何等?复次,阿难,若此圆影离灯别有,则合傍观屏帐几筵有圆影出。 离见别有,应非眼瞩。 云何眚人目见圆影?是故当知色实在灯,见病为影,影见俱眚,见眚非病,终不应言是灯是见,于是中有非灯非见。 如第二月,非体非影。 何以故?第二之观,捏所成故。 诸有智者,不应说言此捏根元,是形非形,离见非见。 此亦如是,目眚所成,今欲名谁是灯是见?何况分别非灯非见?“云何名为同分妄见?阿难,此阎浮提,除大海水,中间平陆有三千洲。 正中大洲,东西括量,大国凡有二千三百。 其余小洲,在诸海中,其间或有三两百国,或一或二,至于三十四十五十。 阿难,若复此中有一小洲,只有两国。 唯一国人同感恶缘,则彼小洲当土众生,睹诸一切不祥境界。 或见二日,或见两月,其中乃至晕适佩玦,彗孛飞流,负耳虹霓,种种恶相。 但此国见,彼国众生本所不见,亦复不闻。 阿难,吾今为汝以此二事,进退合明。 阿难,如彼众生别业妄见,瞩灯光中所现圆影,虽似前境,终彼见者目眚所成。 眚即见劳,非色所造。 然见眚者,终无见咎。 例汝今日以目观见山河国土及诸众生,皆是无始见病所成。 见与见缘,似现前境。 元我觉明,见所缘眚。 觉见即眚,本觉明心,觉缘非眚。 觉所觉眚,觉非眚中,此实见见,云何复名觉闻知见?是故汝今见我及汝,并诸世间十类众生,皆即见眚非见眚者。 彼见真精,性非眚者,故不名见。 阿难,如彼众生同分妄见,例彼妄见别业一人。 一病目人,同彼一国,彼见圆影,眚妄所生。 此众同分所现不祥,同见业中瘴恶所起,俱是无始见妄所生。 例阎浮提三千洲中,兼四大海,娑婆世界,并洎十方诸有漏国及诸众生,同是觉明无漏妙心,见闻觉知虚妄病缘,和合妄生,和合妄死。
有什么东西可以阻止物质热传递?
1、定义:热传导是介质内无宏观运动时的传热现象,其在固体、液体和气体中均可发生,但严格而言,只有在固体中才是纯粹的热传导,而流体即使处于静止状态,其中也会由于温度梯度所造成的密度差而产生自然对流,因此,在流体中热对流与热传导同时发生。 热对流又称对流传热,指流体中质点发生相对位移而引起的热量传递过程,是传热的三种方式之一。 热辐射,物体由于具有温度而辐射电磁波的现象。 热量传递的3种方式之一。 一切温度高于绝对零度的物体都能产生热辐射,温度愈高,辐射出的总能量就愈大,短波成分也愈多。 2、区别:热传导是热能从高温向低温部分转移的过程;热对流是热量通过流动介质传递的过程;热辐射是物体由于具有温度而辐射电磁波的现象,是在真空中唯一的传热方式。
新手机刚开始充电要充多久?
手机的电池和充电器是一个永恒和共同的话题,永远有争论,永远有迷惑.我不求下面这篇文章能带来什么,只是希望本人的一点小小工作能给大家多一份选择和认识.以下的讨论都是针对手机电池,有些更是只针对锂离子电池,我不想把论题扩大,因为来的都是来讨论手机的. 为了便于阅读,小标题列举如下: 1.认识记忆效应 2.电池需要激活吗 3.前三次要充12小时吗 4.充电电池有最佳状态吗 5.真的是充电电流越大,充电越快吗 6.直充标的输出电流就等于充电电流吗 7.循环充放电一次就是少一次寿命吗 8.电池容量越高越好吗 9.充饱的电池进行存储好吗 10.座充的绿灯亮了以后在多充一个小时有用吗 11.座充充电比直充饱吗〓〓〓〓〓〓〓〓〓〓〓 1.认识记忆效应 电池记忆效应是指电池的可逆失效,即电池失效后可重新回复的性能.记忆效应是指电池长时间经受特定的工作循环后,自动保持这一特定的倾向.这个最早定义在镍镉电池,镍镉的袋式电池不存在记忆效应,烧结式电池有记忆效应.而现在的镍金属氢(俗称镍氢)电池不受这个记忆效应定义的约束. 因为现代镍镉电池工艺的改进,上述的记忆效应已经大幅度的降低,而另外一种现象替换了这个定义,就是镍基电池的晶格化,通常情况,镍镉电池受这两种效应的综合影响,而镍氢电池则只受晶格化记忆效应的影响,而且影响较镍镉电池的为小. 在实际应用中,消除记忆效应的方法有严格的规范和一个操作流程.操作不当会适得其反. 对于镍镉电池,正常的维护是定期深放电:平均每使用一个月(或30次循环)进行一次深放电(放电到1.0V/每节,老外称之为exercise),平常使用是尽量用光电池或用到关机等手段可以缓解记忆效应的形成,但这个不是exercise,因为仪器(如手机)是不会用到1.0V/每节才关机的,必须要专门的设备或线路来完成这项工作,幸好许多镍氢电池的充电器都带有这个功能. 对于长期没有进行exercise的镍镉电池,会因为记忆效应的累计,无法用exercise进行容量回复,这时则需要更深的放电(老外称recondition),这是一种用很小的电流长时间对电池放电到0.4V每节的一个过程,需要专业的设备进行. 对于镍氢电池,exercise进行的频率大概每三个月一次即可有效的缓解记忆效应.因为镍氢电池的循环寿命远远低于镍镉电池,几乎用不到recondition这个方法. ▲建议1:每次充电以前对电池放电是没有必要,而且是有害的,因为电池的使用寿命无谓的减短了. ▲建议2:用一个电阻接电池的正负极进行放电是不可取的,电流没法控制,容易过放到0V,甚至导致串联电池组的电池极性反转. 〓〓〓〓〓〓〓〓〓〓〓 2.电池需要激活吗 回答是电池需要激活,但这不是用户的要做的事.我参观过锂离子电池的生产厂,锂离子电池在出厂以前要经过如下过程: 锂离子电池壳灌输电解液---封口----化成,就是恒压充电,然后放电,如此进行几个循环,使电极充分浸润电解液,充分活化,以容量达到要求为止,这个就是激活过程---分容,就是测试电池的容量选取不同性能(容量)的电池进行归类,划分电池的等级,进行容量匹配等.这样出来的锂离子电池到用户手上已经是激活过的了.我们大家常用的镍镉电池和镍氢电池也是如此化成激活以后才出厂的.其中有些电池的激活过程需要电池处于开口状态,激活以后再封口,这个工序也只可能有电芯生产厂家来完成了. 这里存在一个问题,就是电池厂出厂的电池到用户手上,这个时间有时会很长,短则1个月,长则半年,这个时候,因为电池电极材料会钝化,所以厂家建议初次使用的电池最好进行3~5次完全充放过程,以便消除电极材料的钝化,达到最大容量. 在2001年颁布的三个关于镍氢.镍镉和锂离子电池的国标中,其初始容量的检测均有明确规定,对电池可以进行5次深充深放,当有一次符合规定时,试验即可停止.这很好的解释了我说的这个现象. ★那么称之为第二次激活也是可以的,用户初次使用的新电池尽量进行几次深充放循环. ●然而据我的测试(针对锂离子电池),存储期在1~3个月之内的锂离子电池, 对它进行深充深放的循环处理,其容量提高现象几乎不存在.(我在专题讨论区有关于电池激活的测试报告) 〓〓〓〓〓〓〓〓〓〓〓 3.前三次要充12小时吗 这个问题是紧扣上面的电池激活问题的,姑且设出厂的电池到用户手上有电极钝化现象,为了激活电池进行深充深放电循环3次.其实这个问题转化为深充是不是就是要充12个小时的问题.那么我的另一片文章论手机电池的充电时间已经回答了这个问题. ★★★答案是不需要充12小时. 早期的手机镍氢电池因为需要补充和涓流充电过程,要达到最完美的充饱状态,可能需要5个小时左右,但是也是不需要12个小时的.而锂离子电池的恒流恒压充电特性更是决定了它的深充电时间无需12个小时.对于锂离子电池有人会问,既然恒压阶段锂离子电池的电流逐渐减小,是不是当电流小到无穷小的时候才是真正的深充.我曾经画出恒压阶段电流减小对时间的曲线,对它进行多次曲线拟合,发现这个曲线可以用1/x的函数方式接近与零电流,实际测试时因为锂离子电池本身存在的自放电现象,这个零电流是永远不可能到达的. 以600mAh的电池为例,设置截至电流为0.01C(即6mA),它的1C充电时间不超过150分钟,那么设置截至电流为0.001C(即0.6mA),它的充电时间可能为10小时---这个因为仪器精度的问题,已经无法精确获得,但是从0.01C到0.001C获的容量经计算仅为1.7mAh,以多用的7个多小时来换取这仅仅的千分之三不到的容量是没有任何实际意义的.何况,还有其它的充电方式,比如脉冲充电方式使锂离子电池来达到4.2V的限制电压,它根本没有截止最小电流判断阶段,一般150分钟后它就是100%充饱了.许多手机都是用脉冲充电方式的.有人曾经用手机显示充饱后,再用座充进行充电来确认手机的充饱程度,这个测试方法欠严谨. 首先座充显示绿灯不是检测真正充饱与否的一个依据. ★★检测锂离子电池充饱与否的唯一最终的方法就是测试在不充电(也不放电)状态时的锂离子电池的电压. 所谓恒压阶段电流减小其真正的目的就是逐渐减小在电池内阻上因充电电流而产生的附加电压,当电流小到0.01C,比如6mA,这个电流乘与电池内阻(一般在200毫欧之内)仅为1mV,可以认为这时的电压就是无电流状态的电池电压. 其次,手机的基准电压不一定等于座充的基准电压,手机认为充饱的电池到了座充上,座充却不认为已经充饱,却继续进行充电. 〓〓〓〓〓〓〓〓〓〓〓 4.充电电池有最佳状态吗 有一种说法就是,充电电池使用得当,会在某一段循环范围出现最佳的状态,就是容量最大.这个要分情况,密封的镍氢电池和镍镉电池,如果使用得当(比如定期的维护,防止记忆效应的产生和累计),一般会在100~200个循环处达到其容量的最大值,比如出厂容量为1000mAh的镍氢电池用了120次循环后,其容量有可能达到1100mAh.几乎所有的日本镍氢电池生产商的技术规格书中描述镍基电池的循环特性的图上我都能看到这样的描述. ★镍基电池有最佳状态,一般在100~200循环次数之间达到其最大容量 对于液态锂离子电池,却根本不存在这样一个循环容量的驼峰现象,从锂离子电池出厂到最终电池报废为止,其容量的表现就是用一次少一次.我在对锂离子电池做循环性能的时候也从来没有看到过有容量回升的迹象. ★锂离子电池没有最佳状态. 值得一提的是,锂离子电池更容易受环境温度的变化而表现不同的性能,在25~40度的环境温度会表现其最好性能,而低温或高温状态,他的性能就大打折扣了.要使你的锂离子电池充分展现它的容量,一定要细心的注意使用环境,防止高低温现象,比如手机放在汽车的前台上,中午的太阳直射很容易就可以使其超过60度,北方的用户的电池待机时间,同等网络情况下,就没有南方的用户长了. 〓〓〓〓〓〓〓〓〓〓〓 5.真的是充电电流越大,充电越快吗 论手机电池的充电时间一文中已经讲了这个问题,对于恒流充电的镍基电池,可以这么说,而对应锂离子电池,这个是不完全正确的。 ★★对于锂离子电池的充电,在一定电流范围内(1.5C~0.5C),提高恒流恒压充电方式的恒流电流值,并不能缩短充饱锂离子电池的时间. 〓〓〓〓〓〓〓〓〓〓〓 6.直充标的输出电流就等于充电电流吗 这就要讨论手机的充电方式了,对于充电管理在手机里面的,设定同样一个直充(实际应称为电源适配器)的输出如:5.3V 600mAA.充电管理是开关方式(高频脉宽调整PWM方式),这个充电方式,手机并没有完全利用直充的输出能力,直充工作在恒压段,输出5.3V,此时真正的充电电流由手机的充电管理进行调整,而且肯定要小于600mA,一般在300~400mA.这个时候,大家看到的直充的输出电流就不是手机的充电电流.比如motorola的许多直充其输出为5.0V 1A,真正对电池充电的也就用到了500mA足矣,因为手机的电池容量也不过580mAh. ★这时直充上标的输出电流就不等于实际充电电流B.充电管理为脉冲方式的,这个充电方式,手机完全利用了直充的限流电流,就是用了600mA在电池上,这个时候,直充的输出电流就是充电电流了. 当然以上的都是指在锂离子电池的恒流阶段或镍氢电池的充电而言.如果手机没有充电管理,把充电的管理移到了直充上,比如许多的Cdma手机都是如此,这个就没什么好说的,它的输出写的很明白,比如输出:4.2V 500mA,这个就是锂离子电池恒流恒压两个数据了 〓〓〓〓〓〓〓〓〓〓〓 7.循环充放电一次就是少一次寿命吗 循环就是使用,我们是在使用电池,关心的是使用的时间,为了衡量充电电池的到底可以使用多长时间这样一个性能,就规定了循环次数的定义.实际的用户使用千变万化,因为条件不同的试验是没有可比性的,要有比较就必须规范循环寿命的定义. 国标如是规定锂离子电池的循环寿命测试条件及要求:在25度室温条件下以恒流恒压方式1C的充电制度充电150分钟,以恒流1C的放电制度放电到2.75V截止为一次循环.当有一次放电时间小于36分钟时试验结束,循环次数必须大于300次. 解释: A.这个定义规定了循环寿命的测试是以深充深放方式进行的 B.规定了循环寿命按照这个模式执行后必须超过300次以后容量仍然有60%以上 实际上,不同的循环制度得到的循环次数是截然不同的,比如以上其它的条件不变,仅仅把4.2V的恒压电压改为4.1V的恒压电压对同一个型号的电池进行循环寿命测试,这样这个电池就已经不是深充方式了,最后测试得到循环寿命次数可以提高近60%.那么如果把截止电压提高到3.9V进行测试,其循环次数应该可以增加数倍. 这个关于循环一次就少一次寿命的说法已经有许多友人进行了讨论,我只是补充说明一下而已,大家在谈论循环次数的时候不能忽视循环的条件, ●抛开规则谈论循环次数是没有任何意义的,因为循环次数是检测电池寿命的手段,而不是目的!▲误区:许多人喜欢把手机锂离子电池用到自动关机再充电.这个完全没有必要. 实际上,用户不可能按照国标测试模式对电池进行使用,没有一个手机会在2.75V才关机,而其放电模式也不是大电流恒流放电,而是GSM的脉冲放电和平时的小电流放电混合的方式. 有另外一种关于循环寿命的衡量方法,就是时间.有专家提出一般民用的锂离子电池的寿命是2~3年,结合实际的情况,比如以60%的容量为寿命的终止,加上锂离子电池的时效作用(参考第9点),用时间来表述循环寿命我认为更为合理. 铅蓄电池的充电机理就类似与锂离子电池,是限流限压方式,使用的方式就是浅充浅放,他的寿命表述就是时间,没有次数,比如10年. ★★★所以,对于锂离子电池,没有必要用到关机再充电,锂离子电池本来就适合用随时充电的方式进行使用,这也是他针对镍氢电池的最大优势之一,请大家善加利用这个特性. 〓〓〓〓〓〓〓〓〓〓〓 8.电池容量越高越好吗 不同型号(特别是不同体积)的电池,他的容量越高,提供使用的时间越长.抛开体积和重量的因素,当然容量越高越好. 但是同样的电池型号,标称容量(比如600mAh)也相同,实际测的初始容量不同:比如一个为660mAh,另一个是605mAh,那么660mAh的就比605mAh的好吗. 实际情况可能是容量高的是因为电极材料中多了增加初始容量的东西,而减少了电极稳定用的东西,其结果就是循环使用几十次以后,容量高的电池迅速容量衰竭,而容量低的电池却依然坚挺.许多国内的电芯厂家往往以这个方式来获得高容量的电池.而用户使用半年以后待机时间却是差得一塌糊涂. 民用的那些AA镍氢电池(就是五号电池),一般是1400mAh,却也有标超高容量的(1600mAh),道理也是一样. ★提高容量的代价就是牺牲循环寿命,厂家不在电池材料的改性上下文章,是不可能真正提高电池容量的. 〓〓〓〓〓〓〓〓〓〓〓 9.充饱的电池进行存储好吗 锂离子电池有一个特性非常不好,就是锂离子电池的时效(或称老化,老外称为aging),就是锂离子电池在存储一段时间后,即使不进行循环使用,其部分容量也会永久的丧失,这是因为锂离子电池的正负极材料从一出厂就已经开始了它的衰竭历程.不同的温度和电池充饱状态,其时效后果不同,以下数据摘自参考文献[1],以容量的百分比形式列出:存储温度--40%充电状态-------100%充电状态 0度-------98%(一年以后)-----94%(一年以后) 25度------96%(一年以后)-----80%(一年以后) 40度------85%(一年以后)-----65%(一年以后) 60度------75%(一年以后)-----60%(3个月以后)由此可见,存储温度越高和电池充的越饱,其容量损失就越厉害.所以不推荐长期的保存锂离子电池,反之,厂家应该象对待腐烂的食物一样将其回收.用户要密切留意电池的生产日期. ★如果用户手中有闲置的电池,那么专家推荐的存储条件为充电水平是40%,存储温度低于15度或更低. 而镍氢电池和镍镉电池则几乎不受这个时效作用,长期存储的镍基电池在进行几个深充深放以后就可以恢复其原始容量了. 〓〓〓〓〓〓〓〓〓〓〓 10.座充的绿灯亮了以后在多充一个小时有用吗 绿灯只是一个指示,真正充饱与否在于座充对电池充电过程的控制和判断.以4.2V的锂离子电池为例讨论这个问题. 首先是控制,控制对电池的输出是先恒流,后恒压(电流逐渐减小). 然后是判断,判断电流小于某个电流值时,显示绿灯,因为模数转换的精度和本身的电压精度是受限制的,座充通常设定这个电流值为50mA,此时显示绿灯,那么电池确实离它真正的充饱还有10%不到(据我所测,现在的锂离子电池以50mA截止充电的话,其容量已经可以达到95%,充电接受能力大大提高).现在的问题是座充接下去在干什么: A.如果接下去,座充彻底关断充电回路,没有继续进行恒压充电,那么在座充上再放置10个小时也是于事无补.许多的座充设计方案就是这样的,比如TI(德州仪器)的BQ2057系列充电芯片,linear(凌特)的LT1800系列都是如此. B.座充继续进行恒压充电,并严格控制电压不超出4.2V,无疑再多充一个小时,确实可以增加电池的容量. C.座充继续充电,但是它的电流控制很糟糕,不小心就使电池超出了4.2V,而且继续往上跑.因为锂离子电池不能吸收任何过充.持续对电池施加电流,就会造成这个后果,那么过充就发生了.这个当然是设计不好的座充,比如常见的即可充锂离子电池又可充镍氢电池的十几块钱的蛋充. D.还有一种充电管理芯片,比如maxim(美信)的1679芯片,与许多手机充电管理相同,它采用脉冲方式充电,它在显示绿灯的时候,就是锂离子电池已经100%充饱了,当然再放置一个小时,它也不会过充,显然又是在做无用功.用户实际上不知道绿灯亮了以后座充到底在干什么,A或B或D,都有可能,座充说明书不写这些东西的.排除不合格的座充,我们其实应该相信合格和原装的座充,绿灯亮着的话,为什么不取下来用呢?这对用户实际没有什么太大的影响,充的不饱又不影响循环寿命(如上第7点所述),95%的容量也是可以接受的.除非有爱好者能深入分析自己的座充到底是以那种方式的在充电,否则我们不妨------ ★亮绿灯后就取下来用.〓〓〓〓〓〓〓〓〓〓〓 11.座充充电比直充饱吗 看完了前面的婆婆妈妈的话,这个问题就是最好回答的了,问题的实质就是充电方式的区别. ★不存在座充一定比直充充的饱的说法,也不存在直充一定比座充充的饱的说法.重要的是它们的充电方式是不是能最快最大的充饱电池.














发表评论