Не могли бы вы попробовать это?
this.openFileExplorer = this.openFileExplorer.bind(this);
эта строка должна добавить конец конструктора.
Вы должны изменить эти строки следующим образом. Я надеюсь, что это будет работать (я использую macos). Вы можете проверить эту ссылку; https://reactjs.org/docs/handling-events.html
Как вы, вероятно, уже знаете, с версии 3.2 Hibernate сертифицирован JPA. Вы можете легко использовать Hibernate в качестве своего поставщика JPA, не используя какие-либо «пользовательские» API Hibernate.
Я бы рекомендовал использовать прямой JPA с Hibernate в качестве поставщика. И использовать аннотации, а не XML (гораздо приятнее).
Тогда, когда вам понадобится что-то еще, вы всегда можете получить сеанс Hibernate. Например, я часто нахожу, что мне нужно сделать это, чтобы передать коллекцию в запрос в качестве параметра (setParameterList).
Забавно, как вы сформулировали свой вопрос
новый JPA ... или старый добрый Hibernate
Похоже, что один существовал вечно, а другой только что был выпущен. Конечно, это неправда. JPA находился под влиянием не только Hibernate, но также TopLink и объектных компонентов J2EE. Первое упоминание черновика JSR 220 относится к 2003 году - как это для новинки? Если вы используете JPA с Hibernate, вы по-прежнему используете Hibernate и можете свободно применять любые проприетарные расширения Hibernate.
Итак, выбор за вами: использовать собственный API или использовать эквивалентный установленный и стандартный API ...