Hibernate 榛樿鎬誨叡鏀寔 13 縐嶇敓鎴愮瓥鐣?:
1. increment 2. identity 3. sequence
4. hilo 5. seqhilo 6. uuid
7. uuid.hex 8. guid 9. native
10. assigned 11. select 12. foreign 13. sequence-identity
涓嬮潰浠嬬粛鍑犱釜杈冧負甯哥敤鐨勭瓥鐣?:
① identity [ 鑷劧閫掑 ]
鏀寔 DB2錛孧ySQL錛孲QL Server錛孲ybase 鍜孒ypersonicSQL 鏁版嵁搴擄紝 鐢ㄤ簬涓?long 鎴?short 鎴?int 綾誨瀷鐢熸垚鍞竴鏍囪瘑銆傚畠渚濊禆浜庡簳灞備笉鍚岀殑鏁版嵁搴擄紝
涓?Hibernate 鍜?紼嬪簭鍛樻棤鍏熾?br />
娉ㄨВ紺轟緥 :
@Id
@GenericGenerator(name = "idGenerator", strategy = "identity")
@GeneratedValue(generator = "idGenerator")
② sequence [ 搴忓垪 ]
鏀寔 Oracle錛孌B2錛孭ostgreSql錛孲APDb 絳夋暟鎹簱錛岀敤浜庝負 long 鎴?short 鎴?int 綾誨瀷鐢熸垚鍞竴鏍囪瘑銆傚畠闇瑕佸簳灞傛暟鎹簱鐨勬敮鎸侊紝
騫剁敱鏁版嵁搴撴潵緇存姢榪欎釜 sequence 搴忓垪銆?/span>
娉ㄨВ紺轟緥 :
@Id
@GenericGenerator(name = "idGenerator", strategy = "sequence",
parameters = {@Parameter(name = "sequence",value="seq_name")})
@GeneratedValue(generator = "idGenerator")
娉ㄦ剰 : 璇ョ瓥鐣ヨ姹傝瀹氬簭鍒楀悕錛屽惁鍒?hibernate 灝嗘棤娉曟壘鍒幫紝榪欏皢寮曡嚧鎶涘嚭寮傚父 :
org.hibernate.exception.SQLGrammarException: could not get next sequence value
③ native
闇搴曞眰鏁版嵁搴撶殑鏀寔錛屽浜?MySQL錛孲QL Server 閲囩敤 identity 鐨勭敓鎴愮瓥鐣ワ紝瀵逛簬 Oracle錛屽垯閲囩敤 sequence 絳栫暐銆?/span>
娉ㄨВ紺轟緥 :
@Id
@GenericGenerator(name = "idGenerator", strategy = "native")
@GeneratedValue(generator = "idGenerator")
④ increment [ 鑷劧閫掑 ]
涓?identity 絳栫暐涓嶅悓鐨勬槸錛岃絳栫暐涓嶄緷璧栦簬搴曞眰鏁版嵁搴擄紝鑰屼緷璧栦簬 hibernate 鏈韓錛岀敤浜庝負 long 鎴?short 鎴?int 綾誨瀷鐢熸垚鍞竴鏍囪瘑銆?br /> 涓婚敭璁℃暟鍣ㄦ槸鐢?hibernate 鐨勪竴涓疄渚嬫潵緇存姢錛屾瘡嬈¤嚜澧為噺涓?1錛屼絾鍦ㄩ泦緹や笅涓嶈兘浣跨敤璇ョ瓥鐣ワ紝
鍚﹀垯灝嗗紩璧蜂富閿啿紿佺殑鎯呭喌錛岃絳栫暐閫傜敤浜庢墍鏈夊叧緋誨瀷鏁版嵁搴撲嬌鐢ㄣ?/span>
娉ㄨВ紺轟緥 :
@Id
@GenericGenerator(name = "idGenerator", strategy = "increment")
@GeneratedValue(generator = "idGenerator")
⑤ uuid [ 32浣?6榪涘埗鏁扮殑瀛楃涓?]
閲囩敤128浣峌UID綆楁硶鐢熸垚涓婚敭錛岃兘澶熶繚璇佺綉緇滅幆澧冧笅鐨勪富閿敮涓鎬э紝涔熷氨鑳藉淇濊瘉鍦ㄤ笉鍚屾暟鎹簱鍙婁笉鍚屾湇鍔″櫒涓嬩富閿殑鍞竴鎬с?br /> uuid 鏈緇堣緙栫爜鎴愪竴涓?2浣?6榪涘埗鏁扮殑瀛楃涓詫紝
鍗犵敤鐨勫瓨鍌ㄧ┖闂磋緝澶с傜敤浜庝負 String 綾誨瀷鐢熸垚鍞竴鏍囪瘑錛岄傜敤浜庢墍鏈夊叧緋誨瀷鏁版嵁搴撱?/span>
娉ㄨВ紺轟緥 :
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
⑤ assigned [ 鎵嬪伐鍒嗛厤涓婚敭ID鍊?]
璇ョ瓥鐣ヨ姹傜▼搴忓憳蹇呴』鑷繁緇存姢鍜岀鐞嗕富閿紝褰撴湁鏁版嵁闇瑕佸瓨鍌ㄦ椂錛岀▼搴忓憳蹇呴』鑷繁涓鴻鏁版嵁鍒嗛厤鎸囧畾涓涓富閿甀D鍊鹼紝
濡傛灉璇ユ暟鎹病鏈夎鍒嗛厤涓婚敭ID鍊兼垨鍒嗛厤鐨勫煎瓨鍦ㄩ噸澶嶏紝鍒欒鏁版嵁閮藉皢鏃犳硶琚寔涔呭寲涓斾細寮曡搗寮傚父鐨勬姏鍑恒?/span>
娉ㄨВ紺轟緥 :
@Id
@GenericGenerator(name = "idGenerator", strategy = "assigned")
@GeneratedValue(generator = "idGenerator")