If your client app is going to need the details in the end they will always be accessible to the user in some way or another. The best you can do here is obfuscation of the details. You could just base64 encode them and store them in a properties file (not hibernate.properties), then load them in yourself before obtaining a session factory. To load configuration properties you can use the Configuration class.
If you're looking to foil the slightly more knowledgeable client you could also encrypt them and store the key as a static field in your code. This doesn't make it secure but it's possible your clients aren't adept enough to decompile the source and see for themselves how you're decrypting these things.
Remember to shore up security on the server side. (make sure that DB account has minimal privileges!) Also, disallowing remote services but allowing direct access to the DB doesn't seem like a very sensible policy to me.