{"id":1931,"date":"2013-09-22T19:36:11","date_gmt":"2013-09-22T17:36:11","guid":{"rendered":"http:\/\/blog.fabianpiau.com\/?p=1931"},"modified":"2020-04-10T00:39:57","modified_gmt":"2020-04-09T23:39:57","slug":"manage-sequence-database-with-spring","status":"publish","type":"post","link":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/","title":{"rendered":"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring"},"content":{"rendered":"<p><a class=\"lang\" href=\" https:\/\/blog.fabianpiau.com\/en\/2013\/09\/22\/manage-sequence-database-with-spring\/\" title=\"Read in english\"><strong class=\"labellang\"><span class=\"en\">&nbsp;<\/span>English version available<\/strong><\/a><\/p>\n<div class=\"info\"><strong class=\"label\">Remarque<\/strong><br \/>\nIl vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut arriver que vous ayez besoin de g\u00e9n\u00e9rer un identifiant fonctionnel et qu&rsquo;un g\u00e9n\u00e9rateur Hibernate ne r\u00e9ponde pas \u00e0 vos besoins. Dans mon cas, l&rsquo;identifiant fonctionnel n&rsquo;\u00e9tait pas tout le temps g\u00e9n\u00e9r\u00e9, il pouvait aussi \u00eatre sett\u00e9 \u00e0 la main. Malheureusement, au moment d&rsquo;ins\u00e9rer l&rsquo;\u00e9l\u00e9ment en base de donn\u00e9es (sauf erreur, mais je n&rsquo;ai pas trouv\u00e9&#8230;), le g\u00e9n\u00e9rateur \u00e9crase toujours la valeur de mon identifiant fonctionnel m\u00eame si je l&rsquo;ai sett\u00e9e manuellement auparavant.\n<\/div>\n<p class=\"right\" style=\"padding-left:15px;\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" title=\"Base de donn\u00e9es\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00059\/database.png?resize=130%2C144&#038;ssl=1\" alt=\"Base de donn\u00e9es\" width=\"130\" height=\"144\" \/><\/p>\n<p>Un petit m\u00e9mo (tr\u00e8s technique) utile si vous avez <a href=\"https:\/\/spring.io\/projects\/spring-framework\" target=\"_blank\" title=\"Spring Framework\" rel=\"noopener noreferrer\">Spring<\/a> sur votre projet.<\/p>\n<p>C&rsquo;est dans le cas assez sp\u00e9cifique o\u00f9 l&rsquo;on souhaite r\u00e9cup\u00e9rer \/ incr\u00e9menter la valeur d&rsquo;une <a href=\"https:\/\/stackoverflow.com\/questions\/1649102\/what-is-a-sequence-database-when-would-we-need-it\" target=\"_blank\" title=\"What is a sequence?\" rel=\"noopener noreferrer\">s\u00e9quence<\/a> et que le <a href=\"https:\/\/docs.jboss.org\/hibernate\/orm\/4.2\/manual\/en-US\/html\/ch05.html#mapping-declaration-id-generator\" target=\"_blank\" title=\"Hibernate documentation - ID generator\" rel=\"noopener noreferrer\">Sequence Generator<\/a> d&rsquo;<a href=\"http:\/\/hibernate.org\/\" target=\"_blank\" title=\"Hibernate\" rel=\"noopener noreferrer\">Hibernate<\/a> ne r\u00e9pond pas \u00e0 vos besoins (voir la remarque).<\/p>\n<p>Plut\u00f4t que de passer par une <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Objet_d%27acc%C3%A8s_aux_donn%C3%A9es\" target=\"_blank\" title=\"D\u00e9finition DAO\" rel=\"noopener noreferrer\">DAO<\/a> avec du code Hibernate (ou pire <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Java_Database_Connectivity\" target=\"_blank\" title=\"D\u00e9finition JDBC\" rel=\"noopener noreferrer\">JDBC<\/a>), Spring peut le faire pour vous en 2 minutes&#8230;<\/p>\n<p><br clear=\"none\" \/><\/p>\n<ul>\n<li>Pour cela, il suffit de d\u00e9clarer un nouveau bean dans la configuration Spring de votre projet:\n<pre class=\"brush: xml; light: true; title: ; notranslate\" title=\"\">\r\n       &lt;bean id='mySequenceIncrementer' class='org.springframework.jdbc.support.incrementer.H2SequenceMaxValueIncrementer'&gt;\r\n\t       &lt;property name='dataSource' ref='&lt;Nom de votre datasource&gt;' \/&gt;\r\n\t       &lt;property name='incrementerName' value='&lt;Nom de votre sequence&gt;' \/&gt;\r\n       &lt;\/bean&gt;\r\n<\/pre>\n<blockquote><p>A noter: il existe plusieurs impl\u00e9mentations d&rsquo;incr\u00e9menteur pour diff\u00e9rentes bases de donn\u00e9es (j&rsquo;utilise H2DB, mais MySQL, PostgreSQL, Oracle, etc. sont \u00e9galement disponibles)<\/p><\/blockquote>\n<\/li>\n<li>Injecter ce bean dans la classe de votre choix.<\/li>\n<li>Et d\u00e9sormais, vous pouvez faire:\n<pre class=\"brush: java; light: true; title: ; notranslate\" title=\"\">\r\nfinal Long newIdSequence = mySequenceIncrementer.nextLongValue();\r\n<\/pre>\n<\/li>\n<\/ul>\n<p><br clear=\"none\" \/><\/p>\n<p>Test\u00e9 et approuv\u00e9!<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;English version available Remarque Il vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut arriver que vous ayez besoin de g\u00e9n\u00e9rer un identifiant fonctionnel et qu&rsquo;un g\u00e9n\u00e9rateur Hibernate ne r\u00e9ponde pas \u00e0 vos besoins. Dans mon cas, l&rsquo;identifiant fonctionnel n&rsquo;\u00e9tait pas tout le temps g\u00e9n\u00e9r\u00e9, il pouvait aussi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3943,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[210,130,211,129],"class_list":["post-1931","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-programming","tag-database","tag-hibernate-software","tag-sequence","tag-spring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring | CarmaBlog<\/title>\n<meta name=\"description\" content=\"&nbsp;English version available Remarque Il vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"&nbsp;English version available Remarque Il vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-22T17:36:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-09T23:39:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=350%2C350&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fabian Piau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/\"},\"author\":{\"name\":\"Fabian Piau\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"headline\":\"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring\",\"datePublished\":\"2013-09-22T17:36:11+00:00\",\"dateModified\":\"2020-04-09T23:39:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/\"},\"wordCount\":584,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2013\\\/09\\\/database-thumbnail.png?fit=350%2C350&ssl=1\",\"keywords\":[\"base de donn\u00e9es\",\"hibernate\",\"s\u00e9quence\",\"spring\"],\"articleSection\":[\"Programmation agile\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/\",\"name\":\"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2013\\\/09\\\/database-thumbnail.png?fit=350%2C350&ssl=1\",\"datePublished\":\"2013-09-22T17:36:11+00:00\",\"dateModified\":\"2020-04-09T23:39:57+00:00\",\"description\":\"&nbsp;English version available Remarque Il vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2013\\\/09\\\/database-thumbnail.png?fit=350%2C350&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2013\\\/09\\\/database-thumbnail.png?fit=350%2C350&ssl=1\",\"width\":350,\"height\":350,\"caption\":\"database\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2013\\\/09\\\/22\\\/manage-sequence-database-with-spring\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmation agile\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/category\\\/agile-programming\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring | CarmaBlog","description":"&nbsp;English version available Remarque Il vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/","og_locale":"fr_FR","og_type":"article","og_title":"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring | CarmaBlog","og_description":"&nbsp;English version available Remarque Il vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut","og_url":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_author":"https:\/\/www.facebook.com\/fabian.piau","article_published_time":"2013-09-22T17:36:11+00:00","article_modified_time":"2020-04-09T23:39:57+00:00","og_image":[{"width":350,"height":350,"url":"https:\/\/i2.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=350%2C350&ssl=1","type":"image\/png"}],"author":"Fabian Piau","twitter_card":"summary_large_image","twitter_creator":"@fabianpiau","twitter_site":"@fabianpiau","twitter_misc":{"\u00c9crit par":"Fabian Piau","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#article","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/"},"author":{"name":"Fabian Piau","@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"headline":"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring","datePublished":"2013-09-22T17:36:11+00:00","dateModified":"2020-04-09T23:39:57+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/"},"wordCount":584,"commentCount":5,"publisher":{"@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=350%2C350&ssl=1","keywords":["base de donn\u00e9es","hibernate","s\u00e9quence","spring"],"articleSection":["Programmation agile"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/","url":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/","name":"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=350%2C350&ssl=1","datePublished":"2013-09-22T17:36:11+00:00","dateModified":"2020-04-09T23:39:57+00:00","description":"&nbsp;English version available Remarque Il vaut mieux laisser Hibernate g\u00e9rer tout seul les identifiants techniques (cl\u00e9s primaires). Par contre, il peut","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/"]]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=350%2C350&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=350%2C350&ssl=1","width":350,"height":350,"caption":"database"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/fr\/2013\/09\/22\/manage-sequence-database-with-spring\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Programmation agile","item":"https:\/\/blog.fabianpiau.com\/fr\/category\/agile-programming\/"},{"@type":"ListItem","position":3,"name":"G\u00e9rer une s\u00e9quence de base de donn\u00e9es avec Spring"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/fr\/#website","url":"https:\/\/blog.fabianpiau.com\/fr\/","name":"CarmaBlog","description":"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"views":4527,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2013\/09\/database-thumbnail.png?fit=350%2C350&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbSHyl-v9","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/1931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/comments?post=1931"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/1931\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media\/3943"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media?parent=1931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/categories?post=1931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/tags?post=1931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}