To configure JPA entity to make use of auto increment feature of MySql for primary key generation you can make use of IDENTITY strategy ref below code.
But problem with this way of generating ids with MySql and JPA combination is when you persist new entity and try to retrieve id assigned to newly persisted entity using getId() method. You get 0 value, because newly generated id for the record is not set with managed entity for that you need to flush after persisting the entity.
If you don't specify strategy with GeneratedValue annotation, default value will be GenerationType.AUTO. AUTO strategy means your are asking JPA to select appropriate strategy. In most of the cases it is TABLE strategy.
One can make use of TABLE strategy directly, this way you have more control over configurations.
@Entity public class Customer { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private long id; . . . public long getId() { return id; } }
But problem with this way of generating ids with MySql and JPA combination is when you persist new entity and try to retrieve id assigned to newly persisted entity using getId() method. You get 0 value, because newly generated id for the record is not set with managed entity for that you need to flush after persisting the entity.
If you don't specify strategy with GeneratedValue annotation, default value will be GenerationType.AUTO. AUTO strategy means your are asking JPA to select appropriate strategy. In most of the cases it is TABLE strategy.
@Entity public class Customer { @Id @GeneratedValue private long id; . . . public long getId() { return id; } }
One can make use of TABLE strategy directly, this way you have more control over configurations.
@Entity public class Customer { @Id @GeneratedValue(generator = "idgen") @TableGenerator(name = "idgen", table = "ID_GEN", pkColumnName = "ID_NAME", valueColumnName = "ID_VAL", pkColumnValue = "CUST_SEQ", allocationSize = 1, initialValue = 0) private long id; . . . public long getId() { return id; } }
Great step by step solution, thanks for the help!
ReplyDeleteapple-ios training in chennai
nice posting.
ReplyDeleteinformix training in chennai
Great step by step solution, thanks for the help!
ReplyDeletemsbi training in chennai
nice posting.
ReplyDeletec,c++training in chennai
Great article, really very helpful content you made. Thank you, keep sharing.
ReplyDeletecloud Services | Austere Technologies
Nice blog with excellent information. Thank you, keep sharing.
ReplyDeleteIOT SERVICES | INTERNET OF THINGS | Austere Technologies
Looking really so informative, thanks for sharing the valuable information here just keep sharing on latest updates...
ReplyDeleteBest Online Software Training Institute | SQL Server Training
Wow...What an excellent informative blog, really helpful. Thank you.
ReplyDeleteBest Commerce College| Avinash college of commerce
Very good informative article. Thanks for sharing such nice article, keep on up dating such good articles.
ReplyDeleteBest Commerce College in Hyderabad | Avinash College of Commerce
VERY INFORMATIVE BLOG. THANK YOU.
ReplyDeleteBest junior college in Hyderabad | Avinash College of commerce
Thank you for sharing this valuable information. But get out this busy life and find some peace with a beautiful trip. book Andaman holiday packages
ReplyDeleteThank you for sharing this valuable information. But get out this busy life and find some peace with a beautiful trip. book ANDAMAN TOUR PACKAGE @24599
ReplyDeleteHi Thanks for the nice information its very useful to read your blog. We provide best Chartered Institute Of Management Accountants
ReplyDeleteExcellent informative blog, keep for sharing.
ReplyDeleteBest System Integration services | Massil Technologies
Wonderful blog!!! I would like to share with my colleagues and friends.
ReplyDeleteSelenium Training in Chennai
software testing selenium training
ios developer course in chennai
Digital Marketing Course in Chennai
Selenium Interview Questions and Answers
Future of testing professional
Cloud Courses in Chennai