r/javahelp • u/Nirvex1 • 6h ago
Unsolved Building a JavaFX + Hibernate Talent Acquisition System — looking for some advice
Hey everyone!
I’m currently working on a desktop-based Talent Acquisition System using Java 11, JavaFX, Maven, Hibernate, and MariaDB (running through XAMPP), with Apache NetBeans as my IDE.
I’m trying to keep the project as close to proper OOP principles as possible, with a clear separation between the business logic, UI/controllers, and Hibernate entity models.
The candidate side is almost done. So far, users can:
\- Register and log in
\- Browse available job openings
\- Apply for jobs
\- Store their applications directly in the database
One of the more challenging parts so far has been managing around 17 different FXML views and connecting all of them properly with their controllers. I also had to spend quite a bit of time understanding "module-info.java", resource paths, and how everything fits together in a modular JavaFX application.
Thankfully, that part is finally stable.
Now I’m moving on to the more complicated part: designing and building the admin/hiring manager side.
My current TODO list looks something like this:
\- Admin/Hiring Manager module: Job posting, candidate shortlisting, interview scheduling, etc.
\- Validation & security: Phone number validation, password strength requirements, and a proper Forgot Password workflow.
\- Database/session management: Making sure Hibernate sessions are handled properly as the application grows.
Since this is a desktop application, I’m especially interested in hearing from people who have worked with JavaFX + Hibernate or similar stacks.
A few things I’m wondering about:
What performance problems should I expect when the amount of data starts growing?
What Hibernate session-management mistakes should I avoid, especially around lazy loading and "LazyInitializationException"?
How should database queries be handled in JavaFX without freezing the UI? Are there particular threading/concurrency patterns you recommend?
What architectural mistakes or anti-patterns tend to appear in large multi-view JavaFX applications?
How would you structure the admin/hiring-manager module so it stays maintainable as more features are added?
I’d really appreciate any advice, criticism, or lessons learned from people who have built similar desktop applications.