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

Spring Boot 1 не работает метод создания нового рекорда save

08.06.2025, 21:24. Показов 1265. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проект Spring Boot 1 Java 8 Jpa MySQL
pom
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
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.rb</groupId>
    <artifactId>AdminSpringBootSecurity</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>doctest</name>
    <description>Example project for Spring Boot with security and JSP</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/>
        <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- JSP support -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- JSTL suppport -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
 
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
            <version>3.1.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>mysql</groupId>-->
<!--            <artifactId>mysql-connector-java</artifactId>-->
<!--            <version>8.0.27</version>-->
<!--        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.github.darrachequesne</groupId>
            <artifactId>spring-data-jpa-datatables</artifactId>
            <version>4.3</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.5</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.15.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.github.darrachequesne</groupId>
            <artifactId>spring-data-jpa-datatables</artifactId>
            <version>4.3</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>doctest</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Конфигурация
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
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "com.websystique.springmvc.repository"
//        entityManagerFactoryRef = "jpaEntityMangerFactoryBean",
//        basePackages = {"com.websystique.springmvc.configuration"},
//        transactionManagerRef = "jpaTransactionManager",
//        repositoryFactoryBeanClass = DataTablesRepositoryFactoryBean.class
)
@ComponentScan({ "com.websystique.springmvc.configuration" })
@PropertySource(value = { "classpath:application.properties" })
public class ApplicationConfig {
 
    @Autowired
    private Environment environment;
 
    @Bean(name = "dataSource")
    @Primary
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(environment.getRequiredProperty("spring.jdbc.driverClassName"));
        dataSource.setUrl(environment.getRequiredProperty("spring.jdbc.url"));
        dataSource.setUsername(environment.getRequiredProperty("spring.jdbc.username"));
        dataSource.setPassword(environment.getRequiredProperty("spring.jdbc.password"));
        return dataSource;
    }
 
    @Bean(name = "entityManagerFactory")
    @Primary
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws NamingException {
        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
        factoryBean.setDataSource(dataSource());
        factoryBean.setPackagesToScan(new String[] { "com.websystique.springmvc.model" });
        factoryBean.setJpaVendorAdapter(jpaVendorAdapter());
        factoryBean.setJpaProperties(jpaProperties());
        return factoryBean;
    }
 
    /*
     * Provider specific adapter.
     */
    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
        HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
        return hibernateJpaVendorAdapter;
    }
 
    /*
     * Here you can specify any provider specific properties.
     */
    private Properties jpaProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect", environment.getRequiredProperty("spring.hibernate.dialect"));
        properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("spring.hibernate.hbm2ddl.auto"));
        properties.put("hibernate.show_sql", environment.getRequiredProperty("spring.hibernate.show_sql"));
        properties.put("hibernate.format_sql", environment.getRequiredProperty("spring.hibernate.format_sql"));
        return properties;
    }
 
    @Bean(name = "transactionManager")
    @Primary
    public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
        JpaTransactionManager txManagerJpa = new JpaTransactionManager();
        txManagerJpa.setEntityManagerFactory(emf);
        return txManagerJpa;
    }
 
}
application.properties
Java
1
2
3
4
5
6
7
8
9
spring.jdbc.driverClassName = com.mysql.jdbc.Driver
spring.jdbc.url = jdbc:mysql://localhost:3306/websystique
spring.jdbc.username = root
spring.jdbc.password =
 
spring.hibernate.dialect = org.hibernate.dialect.MySQLDialect
spring.hibernate.show_sql = true
spring.hibernate.format_sql = true
spring.hibernate.hbm2ddl.auto = update
Сервисный слой
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
@Service("testService")
@Transactional
public class TestServiceImpl implements TestService {
 
    @Autowired
    private TestRepository testRepository;
 
    public Test findById(int id) {
        return testRepository.findJpaById(id);
    }
 
    public List<Test> listTests() {
        return testRepository.findAll();
    }
 
    public void deleteTestById(Integer id) {
        testRepository.delete(id);
    }
 
    public void saveTest(Test test) {
        testRepository.save(test);
    }
 
    public void updateTest(Test test) {
        Test entity = testRepository.findJpaById(test.getId());
        entity.setName(test.getName());
        entity.setFile_name(test.getFile_name());
    }
Entity
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Entity
@Table(name="TEST")
public class Test implements Serializable{
 
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
 
    @Column(name="NAME", unique=true, nullable=false)
    private String name;
 
    @Column(name="FILE_NAME", nullable=false)
    private String file_name;
...
 
}
и JpaRepository
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Repository
public interface TestRepository extends JpaRepository<Test, Integer> {
 
    @Query("select b from Test b where b.id = :id")
    Test findJpaById(@Param("id") Integer id);
 
    @Modifying
    @Query("delete from Test b where b.id = :id")
    void deleteJpaTestById(@Param("id") Integer id);
 
    @Query("select b from Test b")
    List<Test> findAll();
 
}
}
Метод
Java
1
2
3
    public void saveTest(Test test) {
        testRepository.save(test);
    }
совсем не работает.
Может я чего не так понимаю. Предполагал, что метод должен создавать новый рекорд в таблице TEST
Не создает. Хотя update работает нормально
То же самое происходит в Spring Mvc 5.
JpaRepository пытаюсь применить недавно. Не понимаю в чем проблема.
Подскажите пожалуйста, что не так в данном приложении. Приложение вместе с дампом базы днных в архиве.
Вложения
Тип файла: zip Prj.zip (15.20 Мб, 0 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2025, 21:24
Ответы с готовыми решениями:

Project 'org.springframework.boot:spring-boot-starter-parent:2.3.2.RELEASE' not found
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; ...

Что такое Spring, Spring Boot?
Здравствуйте. Никогда не использовал Spring, Spring Boot. Возник такой вопрос можно ли его...

Spring в Spring Boot context
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( ...

4
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
09.06.2025, 15:32  [ТС]
Подскажите пожалуйста как выглядит кастомный метод создания новой записи в таблице базы данных для JpaRepository
Java
1
2
public interface TestRepository extends JpaRepository<Test, Integer> {
...
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
10.06.2025, 13:04  [ТС]
Похоже, что драйвер MySQL не тот. Поменял на MSSQL и save JPA заработало без проблем.
pom
Java
1
2
3
4
5
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <scope>runtime</scope>
        </dependency>
properties
Java
1
2
3
4
5
6
7
8
9
spring.jdbc.driverClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jdbc.url = jdbc:sqlserver://localhost;databaseName=websystique
spring.jdbc.username = sa
spring.jdbc.password =
 
spring.hibernate.dialect = org.hibernate.dialect.SQLServerDialect
spring.hibernate.show_sql = true
spring.hibernate.format_sql = true
spring.hibernate.hbm2ddl.auto = update
Предполагал, что Spring Boot сам будет подбирать нужные зависимости. А на самом деле приходится как и в MVC подбирать.

Добавлено через 3 часа 11 минут
Да... Самонадеянно просто копировал таблицы из исходной базы (MSSQL) в MySQL Не обратил внимание, что в таблицах отсутствуют foreign_key. Умная Intellij компилировала все без проблем, и даже иногда запускала приложение на сервере (через раз), но метод save (Jpa) не работал. Преобразовал базу из MSSQL в MySQL по феншую и save работает.

Спасибо всем, кто читал тему.
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
12.06.2025, 16:35
VlGuvin, SpringInitialzr предлагает 'com.mysql:mysql-connector-j:9.3.0'
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
12.06.2025, 22:08  [ТС]
Ставил этот
Java
1
2
3
4
5
  <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>
Вроде работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.06.2025, 22:08
Помогаю со студенческими работами здесь

Spring Boot VS Tomcat+Spring - что выбрать?
Всем доброго дня! Я наверное еще из старой школы - пилю мелкие проект на Spring + Tomcat... ...

Spring Boot или Spring MVC?
Добрый день форумчане. Прошу совета у опытных коллег знающих и работающих с фреймворком Spring....

Как в Java Spring Boot сформировать метод кторый будет работать как API на TomCat
Имеется тестовый проект который сформирован на базе этого примера...

Как запустить Java метод из JavaScript используя Spring Boot
Всем, привет! Возник очередной вопрос по спрингу, а именно как из JS функции вызвать метод Java. А...

Ошибка при обновлении данных через метод запроса PUT (spring boot)
Пишу Restful API на spring boot Делаю запрос через Postman - лезет ошибка, но иногда данные...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru