Я новичек, учу Hibernate и вот столкнулся с проблемой. При первом добавлении в БД, создает три таблицы из которых одна отображает связи - казалось бы все хорошо. Но а если повторить добавление в существующие таблицы то следует ошибка. Пытаюсь разобраться как это работает, буду благодарен за помощь.
@Entity(name = "students")
public class Student {
@Id
@GeneratedValue
private int id;
private int age=200;
private String name;
@OneToMany(cascade = CascadeType.ALL)
private List<Adress> adreses;
public Student() {
}
public Student(String name, List<Adress> adress) {
this.name = name;
this.adreses = adress;
}
}
Класс который содержит коллекция:
@Entity
public class Adress implements IAdress{
@Id
@GeneratedValue
private int id;
private String street = "Volkova";
private int numbe = 43;
public Adress(String street, int numbe) {
this.street = street;
this.numbe = numbe;
}
public Adress() {
}
}
Транзакция тут:
public class Main {
public static void main(String[] args) {
Adress adress1 = new Adress("Volkov",31);
Adress adress2 = new Adress("Lenin",13);
List<Adress> adresses = new ArrayList<>();
adresses.add(adress1);
adresses.add(adress2);
Student student = new Student("Marina",adresses);
try (SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession()) {
session.beginTransaction();
session.persist(student);
session.getTransaction().commit();
}
}
}
и еще
public class HibernateUtil {
private static final SessionFactory sessionFactory =
configureSessionFactory();
private static ServiceRegistry serviceRegistry;
/**
* Создание фабрики
* @return {@link SessionFactory}
* @throws HibernateException
*/
private static SessionFactory configureSessionFactory() throws
HibernateException {
StandardServiceRegistry standardRegistry = new
StandardServiceRegistryBuilder()
.configure("hibernate.cfg.xml").build();
Metadata metadata = new
MetadataSources(standardRegistry).getMetadataBuilder().build();
return metadata.getSessionFactoryBuilder().build();
}
/**
* Получить фабрику сессий
* @return {@link SessionFactory}
*/
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Ошибка
WARN: SQL Error: 0, SQLState: 42703
дек. 02, 2018 1:42:44 ПП org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
ERROR: ОШИБКА: столбец i.indproc не существует
Подсказка: Возможно, предполагалась ссылка на столбец "i.indpred".
Позиция: 610
дек. 02, 2018 1:42:44 ПП org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop
INFO: HHH10001008: Cleaning up connection pool [jdbc:postgresql://localhost:5432/postgres]
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.reactionsSupport.workDB.Main.main(Main.java:21)
Caused by: org.hibernate.exception.SQLGrammarException: Error accessing index information: students_adress
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.convertSQLException(InformationExtractorJdbcDatabaseMetaDataImpl.java:98)
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getIndexes(InformationExtractorJdbcDatabaseMetaDataImpl.java:759)
at org.hibernate.tool.schema.extract.internal.TableInformationImpl.indexes(TableInformationImpl.java:122)
at org.hibernate.tool.schema.extract.internal.TableInformationImpl.getIndex(TableInformationImpl.java:138)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyUniqueKeys(AbstractSchemaMigrator.java:370)
at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:85)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:207)
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:114)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)
at com.reactionsSupport.workDB.HibernateUtil.configureSessionFactory(HibernateUtil.java:26)
at com.reactionsSupport.workDB.HibernateUtil.<clinit>(HibernateUtil.java:14)
... 1 more
Caused by: org.postgresql.util.PSQLException: ОШИБКА: столбец i.indproc не существует
Подсказка: Возможно, предполагалась ссылка на столбец "i.indpred".
Позиция: 610
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
at org.postgresql.jdbc2.AbstractJdbc2DatabaseMetaData.getIndexInfo(AbstractJdbc2DatabaseMetaData.java:4127)
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getIndexes(InformationExtractorJdbcDatabaseMetaDataImpl.java:719)
... 13 more
Пересоздал проект через Spring Boot и все стало работать как надо - проблема решена
Я делаю конвертер и мне нужно, чтобы я выбирал в одном choiceBox одну валюту, в другом другую и курс менялсяСами choiceBox`ы у меня есть
Начал разбираться в вебсокетами, и пробую написать небольшой чат Ноду особо не знаю, для работы с базой на бекенде php-фреймворк, все запросы...