Member-only story
I Let Hibernate Handle My Database, and All I Got Was a Table Named “Alien”
My articles are open to everyone; non-member readers can read the full article by clicking this link
So there I was, writing Java code, minding my own business, and trying to insert an Alien
into a PostgreSQL database. Not a real alien (I don't have that kind of clearance), but a cute little Java object with a couple of fields and dreams of persistence.
Naturally, I turned to Hibernate. Because why wouldn’t I want an ORM that promises to handle all the messy SQL stuff for me? I annotate my class, wire up my hibernate.cfg.xml
, write a sweet little session.persist(alien)
, run the code...
…and nothing happens.
Hibernate: The Silent Operator
No exception, no error, no “You messed up” message. Just silence. It’s like asking your crush out and getting left on read.
After a few minutes of confused blinking, I remembered something buried deep in the Hibernate docs (and my soul): You need to commit a transaction.
Hibernate doesn’t actually save anything to the database until you officially tell it: “Yes, I am serious about this.” So you do the adult thing:
Transaction tx = session.beginTransaction();
session.persist(alien)…