powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate не пишет в базу
18 сообщений из 18, страница 1 из 1
Hibernate не пишет в базу
    #39369586
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Пытаюсь разобраться с Hibernate и никак не могу понять, почему не пишется в одну из таблиц.
Создал класс Song:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
@Entity
@Table(name="SONGS")
public class Song implements Serializable{

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private Long id;

    @Column(name = "NAME")
    private String name;

    @Column(name = "MUSICIAN")
    private String musician;

    @Column(name = "DURATION")
    private Long duration;

    public Song() {
    }

    public Song(String musician, String name) {
        this.name = name;
        this.musician = musician;
    }
//Геттеры и сеттеры
}



И класс Album
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
@Entity
public class Album implements Serializable{

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private Long id;

    @Column(name = "USERID")
    private Long idUser;

    @Column(name = "NAME")
    private String name;

   @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   @JoinTable(name = "album_songs", joinColumns = @JoinColumn(name = "album_id", referencedColumnName = "ID"),
           inverseJoinColumns = @JoinColumn(name = "song_id", referencedColumnName = "ID"))
   private List<Song> songList = new LinkedList<>();

    public Album(){
    }
    public Album(Long idUser, String name) {
        this.idUser = idUser;
        this.name = name;

    }
//Геттеры и сеттеры
}



И создал метод:
Код: java
1.
2.
3.
4.
public void addSong(Song song) {
        album = albumRepo.findByIdUser(idUser);
        album.getSongList().add(song);
}


Однако, запись хоть и добавляется в лист, но не пишется в таблицу.
Что я делаю не так?)
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369590
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timein,

хибер пишет в базу когда закрывается транзакция или сам сбрасываешь в базу. Найди рабочий пример hello world
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369593
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, да искал, но, видимо, плохо( В основном просто описывается, как построить entity и repository, а дальше уже в main орудуют с созданным. А мне нужен отдельный класс(

Потом, например, song.save(new Song()) в базу пишется)
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369620
Андрей0407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timein,
добрый день.
Выложи код репозитария, укажи, как происходит управление транзакциями. Возможно, следует выложить весь проект - если управление транзакциями объявлено в конфигах.
1. Возможно, метод, возвращающий сущность, находится в autocommit mode, тогда сущность возвращается в "отсоединенном" (detached) состоянии и изменения, сделанные с ней впоследствии, не фиксируются.
Именно поэтому в state-based (основанных на orm) репозиториях существует метод save - сущность извлекается из базы в контексте одной транзакции, далее эта транзакция завершается, и сущность необходимо добавить (merge) в контекст другой транзакции для сохранения.
2. Возможно, транзакция отмечена readonly (хотя не уверен, как в этом случае поведет себя сохранение).
Исчерпывающее руководство
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369624
Андрей0407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timein,
Да, еще проверь mappings между песнями и альбомами. Если они должны находится в отношении "многие-ко-многим", то аннотация должна быть @ManyToMany.
Целесообразно проверить, какие запросы выполняет хибер. Настройки логирования .
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369627
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей0407,

Выглядит это сейчас так у меня:
package com.example.configuration

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
package com.example.configuration;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.example.repository.Marker;

import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.util.Properties;

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackageClasses = Marker.class)
@ComponentScan({"com.example"})
public class DataBase {

    @Bean
    public DataSource dataSource() {
        return new DriverManagerDataSource("jdbc:h2:~/test", "sa", "");
    }

    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
        AbstractJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
        adapter.setShowSql(true);
        adapter.setGenerateDdl(true);
        return adapter;
    }

    @Bean
    public EntityManagerFactory entityManagerFactory(DataSource dataSource,
                                                     JpaVendorAdapter jpaVendorAdapter) {
        LocalContainerEntityManagerFactoryBean factory =
                new LocalContainerEntityManagerFactoryBean();
        factory.setJpaVendorAdapter(jpaVendorAdapter);
        factory.setPackagesToScan("com/example/domain");
        factory.setDataSource(dataSource);
        factory.setJpaProperties(jpaProperties());
        factory.afterPropertiesSet();
        return factory.getObject();
    }

    private Properties jpaProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
        return properties;
    }

    @Bean
    public PlatformTransactionManager transactionManager(EntityManagerFactory emf)
            throws PropertyVetoException {
        return new JpaTransactionManager(emf);
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
package com.example.configuration;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@Import(DataBase.class)
public class MainConfig {
}



package com.example.domain;

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
package com.example.domain;


import javax.persistence.*;
import java.io.Serializable;

@Entity
@Table(name="BOOKS")
public class Book implements Serializable{

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private Long id;


    @Column(name = "NAME")
    private String name;

    @Column(name = "AUTHOR")
    private String author;


    public Book() {
    }

    public Book(String author, String name) {
        this.name = name;
        this.author = author;
    }

    public Long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor (String author) {
        this.author = author;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ": "+name+" "+author+
                '}';
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
package com.example.domain;

import javax.persistence.*;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

@Entity
public class Library implements Serializable{

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private Long id;

    @Column(name = "USERID")
    private Long idUser;

   @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   @JoinTable(name = "Library_books", joinColumns = @JoinColumn(name = "Library_id", referencedColumnName = "ID"),
           inverseJoinColumns = @JoinColumn(name = "book_id", referencedColumnName = "ID"))
   private List<Book> bookList = new LinkedList<>();

    public Library(){
    }
    public Library(Long idUser) {
        this.idUser = idUser;

    }
    public Long getId() {
        return id;
    }
    public Long getIdUser() {
        return idUser;
    }

    public void setIdUser(Long idUser) {
        this.idUser = idUser;
    }

    public List<Book> getBookList() {
        return bookList;
    }

    public void setBookList(List<Book> bookList) {
        this.bookList = bookList;
    }


    @Override
    public String toString() {
        return "Library{" +
                "BookList=" + bookList +
                '}';
    }
}



package com.example.repository;
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
package com.example.repository;
import com.example.domain.Book;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;


public interface  BookRepo  extends JpaRepository<Book, Long> {

        Book findFirstByName(String name);
        Book findFirstById(Long id);
        List<Book> findByName(String name);
        List<Book> findByAuthor(String musician);
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
package com.example.repository;

import com.example.domain.Library;
import org.springframework.data.jpa.repository.JpaRepository;

public interface  LibraryRepo extends JpaRepository<Library, Long> {
    Library findByIdUser(Long id);
}



package com.example;
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
package com.example;

import com.example.domain.Book;
import com.example.domain.Library;
import com.example.repository.BookRepo;
import com.example.repository.LibraryRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


@Component
public class UserLibraryImpl implements UserLibrary {

    @Autowired
    private BookRepo bookRepo;

    @Autowired
    private LibraryRepo libraryRepo;
    private Library library;
    private Long idUser;

    public void setIdUser(Long idUser) {
        this.idUser = idUser;
    }


    public UserLibraryImpl(){}
    public UserLibraryImpl(Long idUser) {
        this.idUser=idUser;
    }

    @Override
    @Transactional
    public void addBook(Book book) {
        library = libraryRepo.findByIdUser(idUser);

        Book bookForLibraray =bookRepo.save(book);

        library.getBookList().add(bookForLibraray);

    }

    @Override
    public Book findBookForAll(String name) {
        return null;
    }

    @Override
    public Book findBook(String name) {
        return null;
    }

    @Override
    public void deleteBook(Book book) {

    }

    @Override
    public void editBook(Book book) {

    }

    @Override
    public void showAll() {

    }


}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
package com.example;

import com.example.domain.Book;

public interface UserLibrary {
    void addBook(Book book);
    Book findBookForAll(String name);
    Book findBook(String name);
    void deleteBook(Book book);
    void editBook(Book book);
    void showAll();
}



Application
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
import com.example.configuration.MainConfig;
import com.example.domain.Book;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;


public class Application {
    public static void main(String[] args) {

        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();

        ctx.register(MainConfig.class);
        ctx.refresh();

        UserLibraryImpl library = (UserLibraryImpl) ctx.getBean(UserLibrary.class);
        library.setIdUser(1L);


        Book book = new Book("Иванов", "Кто же мы");


        library.addBook(book);
        ctx.close();
    }
  }



Сейчас, если не убирать аннотацию
Код: java
1.
2.
  @Transactional
    public void addBook(Book book) {


то вылетает ошибка Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy37 cannot be cast to ru.sbrf.UserAlbumImpl
Если убрать, то сохраняется только книга, без занесения во вторую таблицу library-books
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369628
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей0407, немного на другие сущности перешел.
Я использую один ко многим, потому как у меня одна библиотека (один альбом, как в предыдущем случае) и в нем много книг)
Исходил из того, что как-то странно хранить в книгах список библиотек, в которых они лежат...
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369636
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeinPetro123, да искал, но, видимо, плохо( В основном просто описывается, как построить entity и repository, а дальше уже в main орудуют с созданным. А мне нужен отдельный класс(

Потом, например, song.save(new Song()) в базу пишется)
не понял.
Ещё раз. Если это ваш первый проект с хибером, то нужно найти любой работающий пример.
Любой!
А потом уже переделать его на свои хотелки .
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369651
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, большинство примеров используют xml, я же пытаюсь сделать через аннотации.
Потом, там есть FactorySession, у меня по конфигу этого нет ( ну или оно создается как-то по-другому), а когда я пытаюсь прописать, прога ругается на два бина для создания.

Примеры я поищу, но все же хочется и этот доделать... Хотя, возможно, предложенный вами путь и легче
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369654
Андрей0407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timein,
1. По поводу управления транзакциями. Действительно странно - сущность библиотеки загружается и модифицируется в одном контексте. Явно указано, что контекст не read only. При выходе из UserLibraryImpl.addBook должна происходить фиксация контекста и сохранение сущностей по каскаду.
2. По связыванию полей. Если вы моделируете отношение "один-ко-многим", то аннотация @JoinTable лишняя - мостовая таблица просто не нужна, в таблице книг будет fk на библиотеку. Но это не объясняет, почему связи не сохраняются.
Вижу два пути.
1. Посмотреть, как поведет себя репозитарий при изменении одной сущности (чтобы исключить возможные проблемы в mappings).
В рамках одного transactional метода: достаете из репозитария книгу, меняете ей название и выходите из метода, не сохраняя книгу.
Если сохранение книги работает, то проблема в связывании.
2. Выкладываете проект полностью (с указанием информации для сборки: maven/gradle или что там). Попробую посмотреть.
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369655
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей0407, Да вот все, что есть, уже скинул.
Собираю мавеном
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369656
Андрей0407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timein,
желательно весь проект одним архивом. Лениво создавать проект, пакеты... Да и какие и Вас версии хибера и спрингов, я не знаю.
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369657
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей0407,
Хм... а как мне тогда вытягивать книги в библиотеку? Так он по ид подтягивает книги. Причем если в мостовой таблице есть значения, он их вытягивает. Но новые туда не пишет

А если аннотации менять, то на что ее маппить? Создавать в буках поле library?
@OneToMany(cascade = CascadeType.ALL, mappedBy = "?")
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369660
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей0407,
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369670
Андрей0407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timein,
По поводу отношения между сущностями - решать Вам.
Отношение "один ко многим" - в одной библиотеке много книг, каждая книга принадлежит одной библиотеке. В простом случае для родительской сущности (библиотека) достаточно указать @OneToMany над коллекцией. В дочерней сущности будет определен внешний ключ, указывающий на библиотеку, которой принадлежит книга, см. здесь .
Отношение "многие ко многим" - в одной библиотеке много книг, каждая книга может принадлежать более чем одной библиотеке. В простом случае для родительской сущности достаточно указать @ManyToMany над коллекцией, переопределить @JoinTable. В этом случае ключа недостаточно, нужна мостовая таблица.
Отношения бывают однонаправленные (библиотека знает, какие в ней книги, но книга не знает о библиотеке, поэтому в сущности "Книга" не надо определять поле "Библиотека") и двунаправленные (bidirectional). Для моделирования двунаправленных отношений используется свойство аннотации mappedBy, указывающее, кто владеет отношением. От этого зависит (если правильно помню), как будет осуществляться задание связывающего поля - сразу, при insert, или отдельным update-ом.
В вашем случае, наверное достаточно однонаправленного отношения один ко многим.
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369676
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей0407,

поставил просто @OneToMany
Создалась таблица Library_books c 3 колонками - id library, id book, id booklist
и по прежнему пустая(
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369709
Андрей0407
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Timein,
Извините, ввел Вас в заблуждение - поддержка связи "один ко многим" через мостовую таблицу возможна. Так предполагается делать, если внешний ключ может быть nullable - наличие null снижает "качество данных".
Что же касается Вашего примера, он вполне рабочий - связи между сущностями создаются и сохраняются. Из лога:
Лог для неизмененного приложения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
2016-12-18 22:13:35,770 DEBUG [org.hibernate.engine.spi.ActionQueue] - <Executing identity-insert immediately>
2016-12-18 22:13:35,772 DEBUG [org.hibernate.SQL] - < insert into Library (ID, USERID) values (null, ?) >
Hibernate: insert into Library (ID, USERID) values (null, ?)
2016-12-18 22:13:35,776 DEBUG [org.hibernate.id.IdentifierGeneratorHelper] - <Natively generated identity: 1>
2016-12-18 22:13:35,779 DEBUG [org.springframework.data.repository.core.support.TransactionalRepositoryProxyPostProcessor$CustomAnnotationTransactionAttributeSource] - <Adding transactional method 'save' with attribute: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; ''>
2016-12-18 22:13:35,779 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Returning cached instance of singleton bean 'transactionManager'>
2016-12-18 22:13:35,779 DEBUG [org.springframework.orm.jpa.JpaTransactionManager] - <Found thread-bound EntityManager [org.hibernate.jpa.internal.EntityManagerImpl@748e9b20] for JPA transaction>
2016-12-18 22:13:35,779 DEBUG [org.springframework.orm.jpa.JpaTransactionManager] - <Participating in existing transaction>
2016-12-18 22:13:35,780 DEBUG [org.hibernate.engine.spi.ActionQueue] - <Executing identity-insert immediately>
2016-12-18 22:13:35,780 DEBUG [org.hibernate.SQL] - < insert into BOOKS (ID, AUTHOR, NAME) values (null, ?, ?) >
Hibernate: insert into BOOKS (ID, AUTHOR, NAME) values (null, ?, ?)
2016-12-18 22:13:35,782 DEBUG [org.hibernate.id.IdentifierGeneratorHelper] - <Natively generated identity: 1>
2016-12-18 22:13:35,782 DEBUG [org.springframework.orm.jpa.JpaTransactionManager] - <Initiating transaction commit>
2016-12-18 22:13:35,782 DEBUG [org.springframework.orm.jpa.JpaTransactionManager] - <Committing JPA transaction on EntityManager [org.hibernate.jpa.internal.EntityManagerImpl@748e9b20]>
2016-12-18 22:13:35,782 DEBUG [org.hibernate.engine.transaction.spi.AbstractTransactionImpl] - <committing>
2016-12-18 22:13:35,783 DEBUG [org.hibernate.event.internal.AbstractFlushingEventListener] - <Processing flush-time cascades>
2016-12-18 22:13:35,783 DEBUG [org.hibernate.event.internal.AbstractFlushingEventListener] - <Dirty checking collections>
2016-12-18 22:13:35,787 DEBUG [org.hibernate.engine.internal.Collections] - <Collection found: [com.example.domain.Library.bookList#1], was: [<unreferenced>] (initialized)>
2016-12-18 22:13:35,788 DEBUG [org.hibernate.event.internal.AbstractFlushingEventListener] - <Flushed: 0 insertions, 0 updates, 0 deletions to 2 objects>
2016-12-18 22:13:35,788 DEBUG [org.hibernate.event.internal.AbstractFlushingEventListener] - <Flushed: 1 (re)creations, 0 updates, 0 removals to 1 collections>
2016-12-18 22:13:35,788 DEBUG [org.hibernate.internal.util.EntityPrinter] - <Listing entities:>
2016-12-18 22:13:35,789 DEBUG [org.hibernate.internal.util.EntityPrinter] - <com.example.domain.Library{idUser=1, id=1, bookList=[com.example.domain.Book#1]}>
2016-12-18 22:13:35,789 DEBUG [org.hibernate.internal.util.EntityPrinter] - <com.example.domain.Book{author=Р?ванов, name=Кто Р¶Рµ РјС‹, id=1}>
2016-12-18 22:13:35,789 DEBUG [org.hibernate.persister.collection.AbstractCollectionPersister] - <Inserting collection: [com.example.domain.Library.bookList#1]>
2016-12-18 22:13:35,795 DEBUG [org.hibernate.SQL] - < insert into Library_books (Library_id, book_id) values (?, ?) >
Hibernate: insert into Library_books (Library_id, book_id) values (?, ?)
2016-12-18 22:13:35,795 DEBUG [org.hibernate.persister.collection.AbstractCollectionPersister] - <Done inserting collection: 1 rows inserted>
2016-12-18 22:13:35,796 DEBUG [org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction] - <committed JDBC Connection>
2016-12-18 22:13

Проверил напрямую - запросом к базе *после* завершения приложения. Возможно, проблема обусловлена тем, что используется обычная база, а не in-memory , и в ней остались артефакты.
Настроил для примера логирование и поменял связи на многие ко многим (см. Application.main). Измененный пример во вложении.
...
Рейтинг: 0 / 0
Hibernate не пишет в базу
    #39369731
Timein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей0407, ваш пример работает даже при связи @OneToMany, а мой нет) пойду сравнивать, что не так
И спасибо огромное
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate не пишет в базу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]