Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.10.2024
Сообщений: 10

Ошибка при сохранении объекта с вложенной сущностью в PostgreSQL и Spring Boot

28.01.2025, 10:10. Показов 1624. Ответов 1
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Модель Order:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Entity
public class Order {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
 
    private String customer;
 
    @OneToOne(cascade = CascadeType.ALL)
    private Payment payment;
 
    // геттеры и сеттеры
}
Модель Payment:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Entity
public class Payment {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
 
    private String paymentMethod;
 
    private double amount;
 
    // геттеры и сеттеры
}
Сохранение:
Java
1
2
3
4
5
6
7
8
Order order = new Order();
order.setCustomer("John Doe");
Payment payment = new Payment();
payment.setPaymentMethod("Credit Card");
payment.setAmount(100.50);
order.setPayment(payment);
 
orderRepository.save(order);
Ошибка:

org.hibernate.PersistentObjectException: detached entity passed to persist: com.example.demo.Payment
В чем причина этой ошибки и как правильно сохранять вложенные сущности?

19. Создать класс Matrix для работы с двумерными матрицами. Создать методы для генерации нулевой матрицы, а также для генерации матрицы со случайными величинами – применить Math.random(). Реализовать метод сложения матриц.

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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
import java.util.Random;
 
public class Matrix {
    private int[][] data; 
    private int rows;     
    private int cols;     
 
 
    public Matrix(int rows, int cols) {
        this.rows = rows;
        this.cols = cols;
        this.data = new int[rows][cols];
    }
 
 
    public static Matrix zeroMatrix(int rows, int cols) {
        return new Matrix(rows, cols);
    }
 
    public static Matrix randomMatrix(int rows, int cols) {
        Matrix matrix = new Matrix(rows, cols);
        Random random = new Random();
 
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                matrix.data[i][j] = random.nextInt(100); 
            }
        }
 
        return matrix;
    }
 
    public Matrix add(Matrix other) {
        if (this.rows != other.rows || this.cols != other.cols) {
            throw new IllegalArgumentException("Матрицы должны иметь одинаковые размеры для сложения.");
        }
 
        Matrix result = new Matrix(this.rows, this.cols);
        for (int i = 0; i < this.rows; i++) {
            for (int j = 0; j < this.cols; j++) {
                result.data[i][j] = this.data[i][j] + other.data[i][j];
            }
        }
 
        return result;
    }
 
    
    public void printMatrix() {
        for (int[] row : data) {
            for (int value : row) {
                System.out.print(value + "\t");
            }
            System.out.println();
        }
    }
 
    public static void main(String[] args) {
        Matrix zeroMatrix = Matrix.zeroMatrix(3, 3);
        System.out.println("Нулевая матрица:");
        zeroMatrix.printMatrix();
 
        Matrix randomMatrix1 = Matrix.randomMatrix(3, 3);
        System.out.println("\nСлучайная матрица 1:");
        randomMatrix1.printMatrix();
 
        Matrix randomMatrix2 = Matrix.randomMatrix(3, 3);
        System.out.println("\nСлучайная матрица 2:");
        randomMatrix2.printMatrix();
 
        Matrix sumMatrix = randomMatrix1.add(randomMatrix2);
        System.out.println("\nСумма матриц:");
        sumMatrix.printMatrix();
    }
}
20. Реализовать класс MyMath для работы с числами. Реализовать статический метод класса MyMath.round(), который округляет дробь до целого числа. Также статический метод abs(), который находит модуль числа. Статический метод MyMath.pow() для нахождения степени числа. Библиотеку Math не использовать. 
public class Main {
    public static int round(double number) {
        return (int) (number >= 0 ? number + 0.5 : number - 0.5);
    }
 
    public static double abs(double number) {
        return number >= 0 ? number : -number;
    }
 
    public static double pow(double base, int exponent) {
        double result = 1;
        for (int i = 0; i < abs(exponent); i++) {
            result *= base;
        }
        return exponent >= 0 ? result : 1 / result;
    }
 
    public static void main(String[] args) {
        System.out.println("Round 4.6: " + Main.round(4.6)); // 5
        System.out.println("Round -3.4: " + Main.round(-3.4)); // -3
        System.out.println("Absolute -5: " + Main.abs(-5)); // 5
        System.out.println("Absolute 7: " + Main.abs(7)); // 7
        System.out.println("Power 2^3: " + Main.pow(2, 3)); // 8.0
        System.out.println("Power 2^-3: " + Main.pow(2, -3)); // 0.125
    }
}21. Разработать программу для игры «Угадайка». Программа загадывает случайное число от 1 до 10, требуется его отгадать с трех попыток. После каждой попытки, если результат неверен, игроку выводится сообщение, меньше или больше названное игроком число, чем загаданное. Сет заканчивается или если игрок угадывает число, или если исчерпывает три попытки, не угадав. Игра должна быть выполнена в бесконечном цикле, и продолжается до тех пор, пока на предложение «Сыграем еще раз?» игрок не напишет «Нет».
import java.util.Scanner;
import java.util.Random;
 
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        boolean playAgain = true;
 
        while (playAgain) {
            int secretNumber = random.nextInt(10) + 1;
            System.out.println("Я загадал число от 1 до 10. У тебя три попытки угадать!");
 
            boolean guessed = false;
            for (int attempts = 1; attempts <= 3; attempts++) {
                System.out.print("Попытка " + attempts + ": ");
                int guess = scanner.nextInt();
 
                if (guess == secretNumber) {
                    System.out.println("Поздравляю! Ты угадал!");
                    guessed = true;
                    break;
                } else if (guess < secretNumber) {
                    System.out.println("Мое число больше.");
                } else {
                    System.out.println("Мое число меньше.");
                }
            }
 
            if (!guessed) {
                System.out.println("Ты не угадал. Загаданное число было: " + secretNumber);
            }
 
            System.out.print("Сыграем еще раз? (Да/Нет): ");
            String response = scanner.next();
            playAgain = response.equalsIgnoreCase("Да");
        }
 
        System.out.println("Спасибо за игру!");
    }
}
 22. Разработайте программу-генератор рабочего календаря. Слесарь механосборочного цеха работает сутки через трое. Если смена попадает на воскресенье, то переносится на понедельник. По введенной дате программа должна генерировать расписание из дат на текущий месяц на 2022 год. 
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите дату в формате ГГГГ-ММ-ДД: ");
        String inputDate = scanner.nextLine();
        LocalDate startDate = LocalDate.parse(inputDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        int year = 2022;
        LocalDate currentDate = LocalDate.of(year, startDate.getMonthValue(), 1);
 
        System.out.println("Рабочий график на " + currentDate.getMonth() + " " + year + ":");
        while (currentDate.getMonthValue() == startDate.getMonthValue()) {
            if (isWorkDay(startDate, currentDate)) {
                System.out.println(currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            }
            currentDate = currentDate.plusDays(1);
        }
    }
 
    private static boolean isWorkDay(LocalDate startDate, LocalDate currentDate) {
        long daysBetween = java.time.temporal.ChronoUnit.DAYS.between(startDate, currentDate);
        if (daysBetween % 4 == 0) {
            if (currentDate.getDayOfWeek().getValue() == 7) {
                return false;
            }
            if (currentDate.getDayOfWeek().getValue() == 1) return true;
            return false;
        }
        return true;
    }
}
23. Разработать класс для представления комплексных чисел с возможностью задания вещественной и мнимой частей в виде массива из двух чисел типа int. Определить методы для выполнения операций сложения, вычитания и умножения комплексных чисел.
public class ComplexNumber {
    private int real;
    private int imaginary;
 
    public ComplexNumber(int real, int imaginary) {
        this.real = real;
        this.imaginary = imaginary;
    }
 
    public ComplexNumber(int[] parts) {
        this.real = parts[0];
        this.imaginary = parts[1];
    }
 
    public ComplexNumber add(ComplexNumber other) {
        return new ComplexNumber(this.real + other.real, this.imaginary + other.imaginary);
    }
 
    public ComplexNumber subtract(ComplexNumber other) {
        return new ComplexNumber(this.real - other.real, this.imaginary - other.imaginary);
    }
 
    public ComplexNumber multiply(ComplexNumber other) {
        int realPart = this.real * other.real - this.imaginary * other.imaginary;
        int imaginaryPart = this.real * other.imaginary + this.imaginary * other.real;
        return new ComplexNumber(realPart, imaginaryPart);
    }
 
    @Override
    public String toString() {
        return real + (imaginary >= 0 ? " + " : " - ") + Math.abs(imaginary) + "i";
    }
 
    public static void main(String[] args) {
        ComplexNumber num1 = new ComplexNumber(3, 4);
        ComplexNumber num2 = new ComplexNumber(new int[]{1, -2});
 
        System.out.println("Число 1: " + num1);
        System.out.println("Число 2: " + num2);
 
        System.out.println("Сумма: " + num1.add(num2));
        System.out.println("Разность: " + num1.subtract(num2));
        System.out.println("Произведение: " + num1.multiply(num2));
    }
} 24. Создайте класс Form - оболочку для создания и ввода пароля. Он должен иметь методы input, submit, password. Создайте класс SmartForm, который будет наследовать от Form и сохранять значения password.
import java.util.Scanner;
 
class Form {
    private String password;
 
    public void input() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите пароль: ");
        password = scanner.nextLine();
    }
 
    public void submit() {
        if (password != null && !password.isEmpty()) {
            System.out.println("Пароль успешно отправлен.");
        } else {
            System.out.println("Пароль не может быть пустым.");
        }
    }
 
    public String password() {
        return password;
    }
}
 
class SmartForm extends Form {
    private String savedPassword;
 
    @Override
    public void submit() {
        super.submit();
        savedPassword = password();
    }
 
    public String getSavedPassword() {
        return savedPassword;
    }
}
 
public class Main {
    public static void main(String[] args) {
        SmartForm smartForm = new SmartForm();
 
        smartForm.input();
        smartForm.submit();
        System.out.println("Сохраненный пароль: " + smartForm.getSavedPassword());
    }
}
 
25. Сделайте класс User, в котором будут следующие protected поля - name (имя), age (возраст), public методы setName, getName, setAge, getAge. Сделайте класс Worker, который наследует от класса User и вносит дополнительное private поле salary (зарплата), а также методы public getSalary и setSalary. Создайте объект этого класса 'Иван', возраст 25, зарплата 1000. Создайте второй объект этого класса 'Вася', возраст 26, зарплата 2000. Найдите сумму зарплата Ивана и Васи. Сделайте класс Student, который наследует от класса User и вносит дополнительные private поля стипендия, курс, а также геттеры и сеттеры для них.
1. User.java
java
КопироватьРедактировать
public class User {
    protected String name;
    protected int age;
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getName() {
        return name;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public int getAge() {
        return age;
    }
}
 
2. Worker.java
java
КопироватьРедактировать
public class Worker extends User {
    private int salary;
 
    public void setSalary(int salary) {
        this.salary = salary;
    }
 
    public int getSalary() {
        return salary;
    }
}
 
3. Student.java
java
КопироватьРедактировать
public class Student extends User {
    private double scholarship;
    private int course;
 
    public void setScholarship(double scholarship) {
        this.scholarship = scholarship;
    }
 
    public double getScholarship() {
        return scholarship;
    }
 
    public void setCourse(int course) {
        this.course = course;
    }
 
    public int getCourse() {
        return course;
    }
}
 
4. Main.java
java
КопироватьРедактировать
public class Main {
    public static void main(String[] args) {
        // Создание объектов Worker
        Worker ivan = new Worker();
        ivan.setName("Иван");
        ivan.setAge(25);
        ivan.setSalary(1000);
 
        Worker vasya = new Worker();
        vasya.setName("Вася");
        vasya.setAge(26);
        vasya.setSalary(2000);
 
        // Сумма зарплат
        int totalSalary = ivan.getSalary() + vasya.getSalary();
        System.out.println("Сумма зарплат Ивана и Васи: " + totalSalary);
 
        // Создание объекта Student
        Student student = new Student();
        student.setName("Алексей");
        student.setAge(20);
        student.setScholarship(500.5);
        student.setCourse(3);
 
        // Вывод информации о студенте
        System.out.println("Студент: " + student.getName());
        System.out.println("Возраст: " + student.getAge());
        System.out.println("Стипендия: " + student.getScholarship());
        System.out.println("Курс: " + student.getCourse());
    }
}
 
26. Создайте класс ColorModel для определения цветовой модели. Разработайте подклассы RGBconverter и CMYKconverter для конвертации цвета из одной модели в другую. Конвертация CMYK в RGB производится по следующим формулам: R = 255 × (1-C) × (1-K), G = 255 × (1-M) × (1-K), B = 255 × (1-Y) × (1-K) (где R – red, G – green, B – black, C – Cyan, M - Magenta, Y - Yellow, K- Black))
1. ColorModel.java
java
КопироватьРедактировать
public class ColorModel {
    private String modelName;
 
    public ColorModel(String modelName) {
        this.modelName = modelName;
    }
 
    public String getModelName() {
        return modelName;
    }
 
    public void setModelName(String modelName) {
        this.modelName = modelName;
    }
}
2. RGBconverter.java
java
КопироватьРедактировать
public class RGBconverter extends ColorModel {
    private int red;
    private int green;
    private int blue;
 
    public RGBconverter(int red, int green, int blue) {
        super("RGB");
        this.red = validateColorValue(red);
        this.green = validateColorValue(green);
        this.blue = validateColorValue(blue);
    }
 
    private int validateColorValue(int value) {
        if (value < 0 || value > 255) {
            throw new IllegalArgumentException("Цветовое значение должно быть в диапазоне от 0 до 255.");
        }
        return value;
    }
 
    public int getRed() {
        return red;
    }
 
    public int getGreen() {
        return green;
    }
 
    public int getBlue() {
        return blue;
    }
 
    @Override
    public String toString() {
        return "RGB(" + red + ", " + green + ", " + blue + ")";
    }
}
3. CMYKconverter.java
java
КопироватьРедактировать
public class CMYKconverter extends ColorModel {
    private double cyan;
    private double magenta;
    private double yellow;
    private double black;
 
    public CMYKconverter(double cyan, double magenta, double yellow, double black) {
        super("CMYK");
        this.cyan = validatePercentage(cyan);
        this.magenta = validatePercentage(magenta);
        this.yellow = validatePercentage(yellow);
        this.black = validatePercentage(black);
    }
 
    private double validatePercentage(double value) {
        if (value < 0.0 || value > 1.0) {
            throw new IllegalArgumentException("Значение должно быть в диапазоне от 0.0 до 1.0.");
        }
        return value;
    }
 
    public RGBconverter toRGB() {
        int red = (int) (255 * (1 - cyan) * (1 - black));
        int green = (int) (255 * (1 - magenta) * (1 - black));
        int blue = (int) (255 * (1 - yellow) * (1 - black));
 
        return new RGBconverter(red, green, blue);
    }
 
    @Override
    public String toString() {
        return "CMYK(" + cyan + ", " + magenta + ", " + yellow + ", " + black + ")";
    }
}
4. Main.java
java
КопироватьРедактировать
public class Main {
    public static void main(String[] args) {
        // Создаем объект CMYK
        CMYKconverter cmykColor = new CMYKconverter(0.5, 0.4, 0.3, 0.2);
        System.out.println("CMYK цвет: " + cmykColor);
 
        // Конвертация CMYK в RGB
        RGBconverter rgbColor = cmykColor.toRGB();
        System.out.println("Преобразованный RGB цвет: " + rgbColor);
 
        // Пример RGB цвета
        RGBconverter anotherRgbColor = new RGBconverter(128, 64, 255);
        System.out.println("Другой RGB цвет: " + anotherRgbColor);
    }
}
 
 
 
27. Создайте класс Number для конвертации десятичного числа в бинарный, восьмеричный, шестнадцатеричный вид. Реализовать в виде статических методов класса. Числа вводятся с клавиатуры с запросом в какой численный вид конвертировать.
Number.java
java
КопироватьРедактировать
import java.util.Scanner;
 
public class Number {
    // Метод для преобразования числа в бинарный формат
    public static String toBinary(int number) {
        return Integer.toBinaryString(number);
    }
 
    // Метод для преобразования числа в восьмеричный формат
    public static String toOctal(int number) {
        return Integer.toOctalString(number);
    }
 
    // Метод для преобразования числа в шестнадцатеричный формат
    public static String toHexadecimal(int number) {
        return Integer.toHexString(number).toUpperCase(); // Преобразуем в верхний регистр для читаемости
    }
 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
 
        // Запрос числа у пользователя
        System.out.print("Введите число: ");
        int number = scanner.nextInt();
 
        // Запрос выбора формата конверсии
        System.out.println("Выберите формат конверсии:");
        System.out.println("1 - Бинарный");
        System.out.println("2 - Восьмеричный");
        System.out.println("3 - Шестнадцатеричный");
        System.out.print("Введите номер формата: ");
        int choice = scanner.nextInt();
 
        // Выполнение конверсии на основе выбора пользователя
        switch (choice) {
            case 1:
                System.out.println("Бинарный формат: " + toBinary(number));
                break;
            case 2:
                System.out.println("Восьмеричный формат: " + toOctal(number));
                break;
            case 3:
                System.out.println("Шестнадцатеричный формат: " + toHexadecimal(number));
                break;
            default:
                System.out.println("Неверный выбор!");
        }
 
        scanner.close();
    }
}
 
28. Разработать класс Neuron для реализации нейронной сети из двух нейронов и одного выхода. Сделать функцию прямого распространения с функцией активации в виде сигмоиды.
Neuron.java
java
КопироватьРедактировать
public class Neuron {
    private double[] weights; // Весовые коэффициенты
    private double bias;      // Смещение
 
    // Конструктор для инициализации весов и смещения
    public Neuron(double[] weights, double bias) {
        this.weights = weights;
        this.bias = bias;
    }
 
    // Метод для прямого распространения (вычисление выхода нейрона)
    public double forward(double[] inputs) {
        if (inputs.length != weights.length) {
            throw new IllegalArgumentException("Количество входов должно совпадать с количеством весов.");
        }
 
        double sum = 0.0;
        for (int i = 0; i < inputs.length; i++) {
            sum += inputs[i] * weights[i]; // Взвешенная сумма
        }
        sum += bias; // Добавляем смещение
        return sigmoid(sum); // Применяем сигмоидную функцию активации
    }
 
    // Сигмоидная функция активации
    private double sigmoid(double x) {
        return 1 / (1 + Math.exp(-x));
    }
 
    public static void main(String[] args) {
        // Создаем два нейрона
        Neuron neuron1 = new Neuron(new double[]{0.5, 0.8}, 0.1); // Веса и смещение
        Neuron neuron2 = new Neuron(new double[]{0.3, 0.2}, -0.2);
 
        // Создаем выходной нейрон
        Neuron outputNeuron = new Neuron(new double[]{0.9, 0.7}, 0.0);
 
        // Входные данные
        double[] inputs = {1.0, 0.5};
 
        // Прямое распространение для первого слоя
        double output1 = neuron1.forward(inputs);
        double output2 = neuron2.forward(inputs);
 
        // Входы для выходного нейрона
        double[] hiddenLayerOutputs = {output1, output2};
 
        // Прямое распространение для выходного слоя
        double finalOutput = outputNeuron.forward(hiddenLayerOutputs);
 
        // Вывод результата
        System.out.println("Выход первого нейрона: " + output1);
        System.out.println("Выход второго нейрона: " + output2);
        System.out.println("Итоговый выход: " + finalOutput);
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2025, 10:10
Ответы с готовыми решениями:

Вложенный объект в entity модели Spring-Boot
Нужна помощь. У меня есть код, который создает табличку с полями: id, name, price, description. Но мне нужно, чтобы в description был...

Ошибка при выполнении миграций Flyway с PostgreSQL в Spring Boot
Столкнулся с проблемой при запуске миграций с Flyway в Spring Boot и PostgreSQL. При старте приложения миграции не применяются, и возникает...

Узнать операцию над сущностью JPA spring boot
Приветствую всех! Подскажите, пожалуйста, можно ли как нибудь узнать какая операция совершается над сущностью ? Использую...

1
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
28.01.2025, 15:22
Ошибка org.hibernate.PersistentObjectException: detached entity passed to persist: com.example.demo.Payment возникает, когда вы пытаетесь сохранить объект, который связан с другой сущностью, но эта сущность уже была сохранена или загружена из базы данных и находится в состоянии "отсоединённого" (detached).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2025, 15:22
Помогаю со студенческими работами здесь

Ошибка подключения к PostgreSQL через Docker в Spring Boot
Пытаюсь запустить Spring Boot приложение с PostgreSQL, поднятым через Docker. Но приложение не может подключиться к базе данных. ...

Ошибка с транзакциями при сохранении данных в базу PostgreSQL
Столкнулся с проблемой при работе с транзакциями в Spring Boot и PostgreSQL. Пытаюсь сохранить данные, но ничего не сохраняется, и ошибок...

Подключение PostgreSQL к Spring Boot
Столкнулся с проблемой при подключении PostgreSQL к Spring Boot приложению. Пытаюсь создать простое CRUD-приложение для хранения списка...

Контейнеризация Spring boot приложения с postgresql
Здравствуйте. Расскажите пожалуйста, как правильно собирать dockerfile или docker-compose , если проект содержит в себе java spring...

Redis cache in spring boot + hibernate + PostgreSQL
Добрый день. Возникло пару вопросов по redis cache в spring boot + hibernate + PostgreSQL. Заранее извиняюсь за nubовские вопросы...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru