1

JPA is essentially an higher abstraction of JDBC. EntityManager has an API setAutoFlushMode. It can be set to AUTO or COMMIT. What's th equivalent of this in JDBC terms? thanks

dublintech
  • 16,815
  • 29
  • 84
  • 115

1 Answers1

5

JDBC has auto commit as well.

They're both for configuring whether the library should automatically commit to the database.

JDBCs auto-commit is very simplistic, it will commit every update to the database immediately. Without auto-commit, changes aren't committed until the commit method is called.

JPA AUTO causes a flush to the database before a query is executed. Simple operations like find don't require a flush since the library can handle the search, however queries would be much more complicated, and so if AUTO is set, it will flush it first. If the mode is set to COMMIT, it will only flush the changes to the database upon a call to commit or flush. If COMMIT is set, and a query is run, it will not return results that have not been flushed.

kevingallagher
  • 908
  • 1
  • 8
  • 9
  • Thanks. When JPA is set to auto flushes to the databases is the tranasction committed? Why is find any different to a query? – dublintech Apr 07 '12 at 07:41
  • No, the transaction is not commited. "find" is just a common used word for a category of queries, as in for example: "findById". – esej Jul 11 '12 at 14:03