By default, Hibernate tries to load the contents of the file "import.sql" (or files specified by the property hibernate.hbm2ddl.import_files), if such file is present in the root of the classpath. So, one "solution" is to create a table that holds only one value, and has a unique constraint. When Hibernate tries to load the file, it would then fail to load it for the second time, due to the unique constraint. I have not tested this, but I think it should work.
Now, if that sounds bad for you (it does for me), then I'd recommend taking a look at the code that Hibernate uses to import this file:
https://github.com/hibernate/hibernate-orm/blob/4.1.5.Final/hibernate-core/src/main/java/org/hibernate/tool/hbm2ddl/SchemaExport.java#L432
I'd implement this either as a @Singleton @Startup EJB, or as a context listener, or something similar. The idea is to run it every time the app starts. The code would then check if the database is empty, and import the SQL file when needed.