powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA : добавление записи в БД
6 сообщений из 6, страница 1 из 1
JPA : добавление записи в БД
    #38884581
NNN7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте . Разбираюсь с JPA. Не получается добавить в БД таблицу и запись .
У меня есть одна сущность - User :
Код: 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.
import org.hibernate.annotations.GenericGenerator;
 
import javax.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
 
@Entity
@Table(name = "user")
    public class User implements Serializable{
    private Long id;
    private String name;
    private String email;
    private String password;
    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name= "increment", strategy= "increment")
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    @Column(name = "name")
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    @Column(name = "email")
    public String getEmail() {
        return email;
    }
 
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    @Column(name = "password")
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
 
}



есть UserService :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@Service
public class UserService {
 
    @Autowired
    private UserDAO userDao;
 
    //добавить User
    public User addUser(User user)
    {
        User savedUser =userDao.saveAndFlush(user);
        return savedUser;
    }
}



User DAO:


Код: java
1.
2.
3.
4.
@Repository
public interface UserDAO extends JpaRepository<User, Long> {
 
}





Создал класс для тестирования работы БД :

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class TestUserService {
    UserService service = new UserService();
 
    @Test
    public void testSaveRecord() throws Exception {
        //создаём юзера для записи в БД
        User user = new User();
        user.setId((long)1);
        user.setName("name");
        user.setEmail("email");
        user.setPassword("password");
        //Записали в БД
        User userSaved = service.addUser(user);
        //Вывели записанную в БД запись
        System.out.println(userSaved);
    }
 
 
}



И класс Main :


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class Main {
 
    public static void main(String[] args) {
 
        TestUserService testUserService=new TestUserService();
        try {
            testUserService.testSaveRecord();
        }catch (Exception ex)
        {
           ex.printStackTrace();
        }
 
 
    }
 
}



При запуске получаю ошибку :

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
java.lang.NullPointerException
at com.insart.tasker.services.UserService.addUser(UserService.java:18)
at test.TestUserService.testSaveRecord(TestUserService.java:19)
at Main.main(Main.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)



Я уже не знаю, что делать . Читаю-читаю, ничего не получается. Не могу понять , почему ругается , почему исключение вылетает.

Как добавить правильно данные в БД ?

Очень надеюсь на Вашу помощь . Заранее спасибо!
...
Рейтинг: 0 / 0
JPA : добавление записи в БД
    #38884594
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NNN7,

Нужно поднять ApplicationContext и из него получит ваш UserService так как за его жизненный цикл отвечает Spring.
Обычно тесты не запускают, так как это делаете вы. Почитайте документацию по Spring Framework. Сделайте HelloWorld и вся картина начнёт складываться в единое целое. Удачи!
...
Рейтинг: 0 / 0
JPA : добавление записи в БД
    #38885689
NNN7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTk,

а можно хоть небольшой пример? я всё пробую-ищу , и ничего
пробовал как-то через DBUnit по урокам делать , всё без толку

очень нужно разобраться, как добавить записи
пару дней уже сижу над этой задачей - и всё никак (
...
Рейтинг: 0 / 0
JPA : добавление записи в БД
    #38885690
DDiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NNN7,

третий раз за неделю линк на http://www.mkyong.com/tutorials/spring-tutorials/
что, гугл уже попал под санкции???
...
Рейтинг: 0 / 0
JPA : добавление записи в БД
    #38885768
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё есть хороший сайт тут на руском www.devcolibri.com
...
Рейтинг: 0 / 0
JPA : добавление записи в БД
    #38885776
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас userDao не инжектится, что не удивительно, т.к. Вы вручную создаете UserService service = new UserService();
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA : добавление записи в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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