ng
hibernate»áËã³öÒ»¸ö16λµÄÖµ²åÈë
8¡¢native
´úÀíÖ÷¼ü£¬¸ù¾Ýµ×²ãÊý¾Ý¿âµÄ¾ßÌåÌØÐÔÑ¡ÔñÊʺϵÄÖ÷¼üÉú³É²ßÂÔ£¬Èç¹ûÊÇmysql»òsqlserver£¬Ñ¡Ôñidentity£¬Èç¹ûÊÇoracle£¬Ñ¡Ôñsequence¡£
¸ù¾ÝÊý¾Ý¿âµÄÀàÐÍ,×Ô¶¯ÔÚsequence ¡¢identityºÍ,hilo½øÐÐÇл»£¬Áé»îÐÔ¸üÇ¿£¬Èç¹ûÑ¡Ôñsequence»òÕß hilo£¬ÔòËùÓеıíµÄÖ÷¼ü¶¼»á´ÓHibernateĬÈϵÄsequence»òÕßhilo±íÖÐÈ¡¡£²¢ÇÒ£¬ÓеÄÊý¾Ý¿â¶ÔÓÚĬÈÏÇé¿öÖ÷¼üÉú³É²âÊÔµÄÖ§³Ö£¬Ð§Âʲ¢²»ÊǺܸß
ʵÏÖ×Ô¶¯Çл»µÄÒÀ¾Ý:¸ù¾ÝHibernateÅäÖÃÎļþÖеķ½ÑÔÀ´ÅжÏÊÇOracle»¹ÊÇMysql¡¢SqlServer,È»ºóÕë¶ÔÊý¾Ý¿âµÄÀàÐ;ñÔñ sequence»¹ÊÇidentity×÷ΪÖ÷¼üÉú³É²ßÂÔ¡£¶ÔÓÚ oracle ²ÉÓà Sequence ·½Ê½£¬¶ÔÓÚMySQL ºÍ SQL Server ²ÉÓÃidentity£¨×ÔÔöÖ÷¼üÉú³É»úÖÆ£©£¬native¾ÍÊǽ«Ö÷¼üµÄÉú³É¹¤×÷½»ÓÉÊý¾Ý¿âÍê³É£¬hibernate²»¹Ü£¨ºÜ³£Óã©
Óô¦£ºÓÉÓÚHibernate»á¸ù¾Ýµ×²ãÊý¾Ý¿â²ÉÓò»Í¬µÄÓ³É䷽ʽ£¬Òò´ËÁé»îÐԸߣ¬±ãÓÚ³ÌÐòÒÆÖ²£¬ÏîÄ¿ÖÐÈç¹ûÓõ½¶à¸öÊý¾Ý¿âʱ£¬¿ÉÒÔʹÓÃÕâÖÖ·½Ê½¡£
9¡¢assigned
ÓÉÓ¦ÓóÌÐò¸ºÔðÉú³ÉÖ÷¼ü±êʶ·û£¬ÍùÍùʹÓÃÔÚÊý¾Ý¿âÖÐûÓдúÀíÖ÷¼ü£¬Ê¹ÓõÄÖ÷¼üÓëÒµÎñÏà¹ØµÄÇé¿ö£¬ÕâÊÇ
ÔªËØÃ»ÓÐÖ¸¶¨Ê±µÄĬÈÏÉú³É²ßÂÔ¡£È磺
ÕâÖÖÖ÷¼üµÄÉú³É·½Ê½²»½¨ÒéʹÓã¬ÔÚÊý¾Ý¿â±íÉè¼ÆÊ±¾ÍÓ¦¸ÃʹÓôúÀíÖ÷¼ü£¨surrogate key£©£¬²»Ó¦Ê¹ÓÃ×ÔÈ»Ö÷¼ü£¨natural key¾ßÓÐÒµÎñº¬Ò壩£¬ÔÚûÓÐÖ¸¶¨±êǩʱ£¬Ä¬ÈϾÍÊÇassignedÖ÷¼üµÄÉú³É·½Ê½
ÔÚ²åÈëÊý¾ÝµÄʱºòÖ÷¼üÓÉÓû§×Ô¼ºÌí¼Ó£¬hibernateÒ²²»¹Ü
×÷ÓÃ:ÓÃÓÚÊÖ¹¤·ÖÅäÖ÷¼üÉú³ÉÆ÷,Ò»µ©Ö¸¶¨ÎªÕâ¸öÁË,Hibernate¾Í²»ÔÚ×Ô¶¯Îª³ÌÐò×öÖ÷¼üÉú³ÉÆ÷ÁË¡£Ã»ÓÐÖ¸¶¨
±êǩʱ£¬Ä¬ÈϾÍÊÇassignedÖ÷¼üµÄÉú³É·½Ê½
ÔÚ³ÌÐòÖÐsession.save();֮ǰ,ÓɳÌÐòÔ±×Ô¼ºÖ¸¶¨Ö÷¼üֵΪ¶àÉÙ¡£
ÀýÈç:user.setId(1);Õâ¾ÍÊÇÔÚ³ÌÐòÖгÌÐòÔ±ÊÖ¶¯ÎªÓû§±íÖ¸¶¨Ö÷¼üֵΪ1
10¡¢select
?
ʹÓô¥·¢Æ÷Éú³ÉÖ÷¼ü£¨Ö÷ÒªÓÃÓÚÔçÆÚµÄÊý¾Ý¿âÖ÷¼üÉú³É»úÖÆ£¬ÉÙÓã©
ps:
´úÀíÖ÷¼üÊÇÖ¸ÓëÒµÎñÎÞ¹ØÇÒÄÜΨһ±êʶÊý¾Ý¿âÖмǼ,Ò»°ãÊÇÊý¾Ý¿â×Ô¶¯Éú³ÉµÄ,±ÈÈçmysql¿ÉÒÔʹÓÃauto_increment,Sql2000 ¿ÉÒÔʹÓÃidentityÉú³É·½Ê½,oracle¿ÉÒÔʹÓÃsequenceÉú³É·½Ê½ ×ÔÈ»Ö÷¼üÖ¸ÒµÎñÏà¹Ø,ÓÉÓû§Ö¸¶¨,ÇÒÄÜΨһ±êʶÊý¾Ý¿âÖеÄÈÎÒâÒ»Ìõ¼Ç¼¡£
11¡¢foreign
?
Ö»ÊÊÓûùÓÚ¹²ÏíÖ÷¼üµÄÒ»¶ÔÒ»¹ØÁªÓ³ÉäµÄʱºòʹÓ᣼´Ò»¸ö¶ÔÏóµÄÖ÷¼üÊDzÎÕÕµÄÁíÒ»ÕűíµÄÖ÷¼üÉú³ÉµÄ¡£Í¨³£ºÍ
ÁªºÏÆðÀ´Ê¹Óá£
×ܽ᣺¹ØÓÚÖ÷¼üÉú³É²ßÂÔµÄÑ¡Ôñ
?
Ò»°ãÀ´ËµÍƼöUUID£¬ÒòΪÉú³ÉÖ÷¼üΨһ£¬ÇÒ¶ÔÊý¾Ý¿âÎÞÒÀÀµ£¬¿ÉÒÆÖ²ÐÔÇ¿¡£
ÓÉÓÚ³£ÓõÄÊý¾Ý¿â£¬ÈçOracle¡¢DB2¡¢SQLServer¡¢MySql µÈ£¬¶¼ÌṩÁËÒ×ÓõÄÖ÷¼üÉú³É»úÖÆ£¨Auto-Increase ×ֶλòÕßSequence£©¡£ÎÒÃÇ¿ÉÒÔÔÚÊý¾Ý¿âÌṩµÄÖ÷¼üÉú³É»úÖÆÉÏ£¬²ÉÓÃnative£¬sequence»òÕßidentityµÄÖ÷¼üÉú³É·½Ê½¡£
²»¹ýÖµµÃ×¢ÒâµÄÊÇ£¬Ò»Ð©Êý¾Ý¿âÌṩµÄÖ÷¼üÉú³É»úÖÆÔÚЧÂÊÉÏδ±Ø×î¼Ñ´óÁ¿²¢·¢insertÊý¾Ýʱ¿ÉÄÜ»áÒýÆð±íÖ®¼äµÄ»¥Ëø¡£
Òò´Ë£¬¶ÔÓÚ²¢·¢InsertÒªÇó½Ï¸ßµÄϵͳ£¬ÍƼö²ÉÓÃuuid×÷ΪÖ÷¼üÉú³É»úÖÆ¡£
×ÜÖ®£¬hibernateÖ÷¼üÉú³ÉÆ÷Ñ¡Ôñ£¬»¹Òª¾ßÌåÇé¿ö¾ßÌå·ÖÎö¡£Ò»°ã¶øÑÔ£¬ÀûÓÃuuid·½Ê½Éú³ÉÖ÷¼ü½«Ìṩ×îºÃµÄÐÔÄܺÍÊý¾Ý¿âƽ̨ÊÊÓ¦ÐÔ¡£