Improve Hibernate queries

Improve Hibernate queries by:

- adding "nullable = false" to not null columns (allows Hibernate to use inner joins instead of outer joins)
- adding "inner join fetch" to HQL to avoid multiple selects