39 / 28 / 8
Регистрация: 14.04.2012
Сообщений: 249

Spring mvc org.hibernate.LazyInitializationExceptio­n: could not initialize proxy - no Session

25.01.2017, 15:23. Показов 6809. Ответов 21

Студворк — интернет-сервис помощи студентам
Добрый день. Помогите исправить ошибку.
Проблема после AJAX запроса:
JavaScript
1
2
3
4
5
6
7
8
9
$.ajax({
        url: '/electronsun/admin/saveproduct',
        type: 'POST',
        data: {
            id: id,
            column: column,
            value: value
        }
    })
данные попадают в контроллер:
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
@Controller
@RequestMapping(value = "/admin")
public class AdminProductController {
 
    @Autowired
    private ProductService productService;
 
    @RequestMapping("/product")
    public String login(ModelMap model) {
        return "admin/product";
    }
 
    @RequestMapping(value = "/loadproducts", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public @ResponseBody List<Product> loadProducts (){
        return productService.getAll();
    }
 
    @RequestMapping(value = "/saveproduct", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public @ResponseBody Product saveProduct(@RequestParam Long id, @RequestParam("column") String column,
                                             @RequestParam("value") String value ) {
        Product product = productService.get(id);
        if (Objects.equals(column, "name")){
            product.setName(value);
        }else if (Objects.equals(column, "description")){
            product.setDescription(value);
        }else if (Objects.equals(column, "price")){
            product.setPrice(Double.parseDouble(value));
        }else if (Objects.equals(column, "discount")){
            product.setDiscount(Integer.parseInt(value));
        }else if (Objects.equals(column, "maxLed")){
            product.setMaxLed(Integer.parseInt(value));
        }
        return productService.save(product);
    }
 
}

entity
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
@Entity
@Table(name = "products", uniqueConstraints={@UniqueConstraint(columnNames={"name"})})
public class Product  extends NamedEntity {
    @Column(name = "description")
    private String description;
 
    @Column(name = "price", nullable = false)
    private double price;
    /**
     * скидка в процентах
     */
    @Column(name = "discount")
    private int discount;
 
    /**
     * Цена со скидкой
     */
    @Column(name = "discount_price")
    private double discountPrice;
 
    /**
     * кол-во светодиодов в приборе
     */
    @Column(name = "maxLed", nullable = false)
    private int maxLed;
 
    public Product() {
    }
 
    public Product(Long id, String name, String description, double price) {
        super(id, name);
        this.description = description;
        this.price = price;
    }
 
    public Product(Long id, String name, String description, double price, int maxLed) {
        super(id, name);
        this.description = description;
        this.price = price;
        this.maxLed = maxLed;
    }
 
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
 
    public double getPrice() {
        return price;
    }
 
    public void setPrice(double price) {
        this.price = price;
    }
 
    public double getDiscount() {
        return discount;
    }
 
    public void setDiscount(int discount) {
        this.discount = discount;
        discountPrice = (price * discount) / 100;
    }
 
    public double getDiscountPrice() {
        return discountPrice;
    }
 
    public int getMaxLed() {
        return maxLed;
    }
 
    public void setMaxLed(int maxLed) {
        this.maxLed = maxLed;
    }
 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
 
        Product product = (Product) o;
 
        if (Double.compare(product.price, price) != 0) return false;
        return description.equals(product.description);
    }
 
    @Override
    public int hashCode() {
        int result = super.hashCode();
        long temp;
        result = 31 * result + description.hashCode();
        temp = Double.doubleToLongBits(price);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        return result;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2017, 15:23
Ответы с готовыми решениями:

Hibernate + could not initialize proxy - no Session
Есть вот такой метод: @Override public Collection getAllCategories() { List&lt;Category&gt; categories = null; ...

Spring-mvc session
Добрый день уважаемые форумчане. Работаю над проектом на spring-mvc 4.1.1 , столкнулся с задачей хранения информации пользователя в сессии....

Spring MVC + Hibernate
При добавлении обьекта в БД возникает исключение org.springframework.web.util.NestedServletException: Request processing failed;...

21
39 / 28 / 8
Регистрация: 14.04.2012
Сообщений: 249
26.01.2017, 11:59  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от LeX Посмотреть сообщение
репозитории не должны открывать транзакции
я так понимаю KEKCoGEN интересуется транзакциями уже в сервисе. Из репозитория я их убрал.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
26.01.2017, 12:14
Цитата Сообщение от kostrorod Посмотреть сообщение
Не знаю, что вы предлагаете удалить транзакции?
я предлагаю вам понять что такое транзакции, для чего они нужны и как из использовать вместо того чтобы понатыкать их во всевозможные места.
Каждая ваша транзакция должна решать какую то проблему бизнес логики. Определите какая у вас проблема и тогда сможете определить где открывать транзакцию и где её закрывать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2017, 12:14
Помогаю со студенческими работами здесь

Spring MVC + Hibernate project
Проконсультируйте, пожалуйста, по проекту дипломному. Функциональность(см. Use Case) как на этом сайте - https://hosgeldi.com/pol/ +...

Spring MVC, Hibernate - получаю exception
Пытаюсь подключить БД, используется Spring MCS и Hibernate, получаю исключение: type Exception report message Request processing...

Session scoped бины в Spring при сохранении в Redis через Spring Session
Меня интерисует опыт по части использования Spring бинов со скоупом Session. Пример кода, который приведен чуть ниже будет отлично...

Трудности с выводом данных Spring MVC + Hibernate
Проблема в том что я не могу вывести свои данные и таблицы которые есть в проекте даже если я удаляю те файлы все все равно оно выводит их....

Spring MVC + Hibernate, java.lang.ClassNotFoundException
Здравствуйте. Делаю сампл по вышеукаазаных технологиях, получаю следующие ошибки: org.apache.jasper.JasperException:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru