How loose coupling DB interaction when using ORM
I am really struggling with understanding how you are loose coupling your app with a DB when you use an ORM. I understand there are code first and data first design patterns and in some scnearios (Straight forward schemas....some e-commerce, etc) this makes sense. When you have more complex and / or changing schemas during a development phase how do you not handcuff yourself with tightly coupling to the DB.
I am just trying to understand how to apply a valid / robust process for dealing with typical changes to data structures.
You are tightly coupled to the ORM tool, but not the DB. You can take your complete application and move it to another database with just a few lines changed in your hibernate configuration. By changing the database dialect, and the jdbc url to match the new database server, you can port your application from MySql, to PostgreSQL, to Oracle, to SqlServer. That's the loose coupling.