Вот к примеру выборку я делаю с помощью Criteria, а писать в БД как я понял критерия не умеет, по этому использую hql запросы
Для вставки в Hibernate используется session.save() и session.merge(), не надо ничего мудрить с HQL.
Примеры.
Вопрос: какой смысл тогда с критерии если она умеет только выборки делать ?
Смысл критерии именно в выборке (но мне удобнее использовать JPQL/HQL).
Есть ли что-то единственое удобное для выборки, записи, удаления и т.п. ? (JPA?)
Spring Data JPAИ что ещё посоветуете учить паралельно с hibernate для поднятия скила и лёгкого старта в Spring mvc ?
Если вместе со Spring, то советую учить в первую очередь JPA и связанный с ним Spring Data JPA. Для удобства можно ещё и на Spring Boot обратить внимание.