From what I can tell, the JDBC drivers for LISTEN/NOTIFY in Java do NOT support true event-driven notifications. You have to poll the database every so often to see if there's a new notification.
What options do I have in Java (possibly something other than JDBC?), if any, to get notifications asynchronously in a true event-driven manner without polling?
解决方案
Use the pgjdbc-ng driver.
It supports async notifications, without polling. I have used it successfully.
Oleg has a nice example answer as well