I have looked at various questions that are similar to this but haven't found one that directly hits at what need to ask for help with.
So previously I had all of my database connection details in a hibernate xml config file as below (everything at this point worked as expected so I have only included the changed lines)
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">URL</property>
<property name="connection.username">USERNAME</property>
<property name="connection.password">PASSWORD</property>
I changed these lines to
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
I took these properties and have placed them in a properties file dbConnection.properties
connection.driver_class=com.mysql.jdbc.Driver
connection.username=USERNAME
connection.password=PASSWORD
connection.url=URL
I have in my application a method that builds and returns a SessionFactory
private SessionFactory getSessionFactory(){
Properties dbConnectionProperties = new Properties();
try {
dbConnectionProperties.load(ClassLoader.getSystemClassLoader().getResourceAsStream("dbConnection.properties"));
} catch (IOException e) {
e.printStackTrace();
}
SessionFactory factory = new Configuration()
.mergeProperties(dbConnectionProperties)
.configure("hibernate.cfg.xml")
.addAnnotatedClass(EmailMessage.class)
.buildSessionFactory();
return factory;
and the method that uses the session factory
public void PostUnpostedMessageToFacebook(){
SessionFactory factory = getSessionFacto
ry();
System.out.println(factory.getProperties());
// create a session
Session session = factory.getCurrentSession();
session.beginTransaction();
**** some more code let me know if you want to see it but I didn't think it was relevant as this is where the error is thrown ****
before I made these changes, everything worked as expected. however, now I receive the error below.
would you be able to help my understanding as to why this error is now being thrown? as I don't quite understand how or why there is no longer a JDBC connection being returned.
Many thanks
Exception in thread "main" java.lang.UnsupportedOperationException: The application must supply JDBC connections
at org.hibernate.engine.jdbc.connections.internal.UserSuppliedConnectionProviderImpl.getConnection(UserSuppliedConnectionProviderImpl.java:44)
at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:115)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:145)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:263)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:271)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:214)
at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:56)
at org.hibernate.internal.AbstractSharedSessionContract.beginTransaction(AbstractSharedSessionContract.java:409)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:355)
at com.sun.proxy.$Proxy23.beginTransaction(Unknown Source)
at com.post2facebook.postToFacebookApp.GmailToFacebook.PostUnpostedMessageToFacebook(GmailToFacebook.java:80)
at com.post2facebook.postToFacebookApp.MainApp.gmailToFacebookOnlyDemo(MainApp.java:16)
at com.post2facebook.postToFacebookApp.MainApp.main(MainApp.java:11)