Ich versuche, eine Liste von Objekten aus einer MySQL-Tabelle in einer JavaFX Combobox zu laden mit Hibernate und dao Mustern, hier ist mein Code:Laden von benutzerdefinierten Objekte zu JavaFX Combobox aus Mysql Datenbank
Main.java
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("/view/Home.fxml"));
Scene scene = new Scene(root,1600,900);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setTitle("Dentium");
primaryStage.setScene(scene);
primaryStage.setMaximized(true);
primaryStage.show();
Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds();
primaryStage.setX((primScreenBounds.getWidth() - primaryStage.getWidth())/2);
primaryStage.setY((primScreenBounds.getHeight() - primaryStage.getHeight())/4);
}catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
OthersDaoImplementation
public class OthersDaoImp implements OthersDao {
@Override
public List<Others> getAllHealthAlerts() {
List<Others> healthAlerts = new ArrayList<>();
Transaction transaction = null;
Session session = HibernateUtil.getSessionFactory().openSession();
try
{
transaction = session.beginTransaction();
healthAlerts = session.createQuery("from Others").list();
session.getTransaction().commit();
}
catch (RuntimeException e)
{
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
}
finally {
session.flush();
session.close();
}
return healthAlerts;
}
}
Ich bekomme diesen Fehler, jede Hilfe würde sehr geschätzt werden.
INFO: HHH000397: Using ASTQueryTranslatorFactory
Hibernate: select others0_.id as id1_0_, others0_.healthAlert as healthAl2_0_ from others others0_
javafx.fxml.LoadException:
/D:/Programming/EclipseNeon/DentiumFx/bin/view/Home.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at application.Main.start(Main.java:16)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.persistence.TransactionRequiredException: no transaction is in progress
at org.hibernate.internal.SessionImpl.checkTransactionNeeded(SessionImpl.java:3450)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1418)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1414)
at dao.imp.OthersDaoImp.getAllHealthAlerts(OthersDaoImp.java:60)
at controller.PatientController.getHealthAlertsList(PatientController.java:31)
at controller.PatientController.initialize(PatientController.java:115)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
... 17 more
Welches ist Zeile 60? –
'session.flush(); 'von anderenDaoImp.getAllHealthAlerts(); – Thipharete19