I'm trying what is essentially 'hello world' with Hibernate and a Derby database. I already have a Java/JDBC program that interacts with the database correctly and I'm trying to reproduce the project with Hibernate. So far I have only a single table that has a record id. I can populate the corresponding class with data and do a session.save() on it and everything is happy. Following that I have a session.createQuery().list() which lists all the records currently in the database and the brand new record that I just inserted. However, when I use Derby's IJ tool to do a select on the table, all the pre-existing rows are there but the new row is not. I'm guessing that the list() was pulling up the new row from some cache (?) and I'm not clear on how to make sure it gets physically written to the database.