I have HibernateSesstion factory class for getting sesion
public class HibernateSessionFactory {
private static SessionFactory sessionFactory = buildSessionFactory();
protected static SessionFactory buildSessionFactory(){
Configuration configuration = new Configuration();
ServiceRegistry registry = new StandardServiceRegistryBuilder()
.loadProperties("hibernate.properties").build();
try {
sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
}catch (Exception e){
StandardServiceRegistryBuilder.destroy(registry);
e.printStackTrace();
}
return sessionFactory;
}
public static SessionFactory getSessionFactory(){
if (sessionFactory.isClosed()){
buildSessionFactory();
}
return sessionFactory;
}
My entity class
@Entity()
@Table(name = "user_commands")
public class UserCommands implements Serializable {
@Id
@Column(name = "chat_id")
private Long chatId;
@Column(name = "last_command")
private String lastCommand;
public Long getChatId() {
return chatId;
}
public void setChatId(Long chatId) {
this.chatId = chatId;
}
public String getLastCommand() {
return lastCommand;
}
public void setLastCommand(String lastCommand) {
this.lastCommand = lastCommand;
}
}
And my function from class UserCommandsRepository
which select some data
String sql = "update user_commands set last_command = :lastCommand where chat_id = :chatId";
Session session = HibernateSessionFactory.getSessionFactory().openSession();
session.beginTransaction();
session.saveOrUpdate(userCommands);
session.getTransaction().commit();
session.close();
My hibernate.property file
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://URL
hibernate.connection.username=USERNAME
hibernate.connection.password=PASSWORD
hibernate.show_sql=true
hibernate.hbm2ddl=update
When I am trying to run my Main.java class, it's failing with error
Exception in thread "main" org.hibernate.MappingException: Unknown entity: entity.UserCommands
at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:704)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1609)
at org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:293)
at org.hibernate.event.internal.EntityState.getEntityState(EntityState.java:59)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:85)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:102)
at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:617)
at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:610)
at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:605)
at repository.UserCommandsRepository.updateLastUserCommand(UserCommandsRepository.java:13)
at highwayMotorsTelergramBot.Main.main(Main.java:26)