1) If you can guarantee that EventText is never updated (either from your app or directly in the db) this *should* be ok (looking at how Hibernate behaves with READ_ONLY entities), although I've never tried it myself.
2) A query cache will help you here.
To use JBC with Hibernate, the cache mode must either be READ_ONLY or TRANSACTIONAL (see table 19.2 here: http://www.hibernate.org/hib_docs/v3/reference/en/html/performance.html#performance-cache-transactional).
Also, refer to http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossCacheHibernate for more info on JBC/Hibernate
2) and here I should use TRANSACTIONAL on Event , right?