인프런 커뮤니티 질문&답변

꽁손님의 프로필 이미지
꽁손

작성한 질문수

스프링 데이터 JPA

JPA 프로그래밍 1. 프로젝트 세팅

똑같이 작성후 select * from account;

해결된 질문

작성

·

388

0

똑같이 작성후 select * from account; 를 해도 아무변화가 일어나지않네요 .. 왜그럴까요? ㅠㅠ 적용이 안된다고 해야하나..

오류는 일어나지않습니다.

package me.whiteship.demospring;


import org.hibernate.Session;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Component
@Transactional
public class JpaRunner implements ApplicationRunner {

@PersistenceContext
EntityManager entityManager;

@Override
public void run(ApplicationArguments args) throws Exception {
Account account = new Account();
account.setUsername("whiteship");
account.setPassword("jpa");

Session session = entityManager.unwrap(Session.class);
session.save(account);
}
}

spring.datasource.url=jdbc:postgresql://localhost:5432/springdata
spring.datasource.username=postgres
spring.datasource.password=pass

spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.jdbc.lob.non_contxtual_creation=true
    public void run(ApplicationArguments args) throws Exception {
Account account = new Account();
account.setUsername("aaaaa");
account.setPassword("jpa");

Session session = entityManager.unwrap(Session.class);
session.save(account);

System.out.println(account.getUsername());
System.out.println(account.getPassword());
}
}

이렇게 출력해보니까

2020-06-11 15:39:08.303  INFO 18983 --- [         task-1] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]

2020-06-11 15:39:08.312  INFO 18983 --- [         task-1] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'

aaaaa

jpa

2020-06-11 15:40:08.323  INFO 18983 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'

나오긴나오는것 같은데 터미널에는 아~무 이상이 없어요 ㅠㅠ email도 추가 되지않았구요

혹시 이것도 관계가 있을가요?

springdata=# \list

                                 List of databases

    Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   

------------+----------+----------+------------+------------+-----------------------

 postgres   | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 

 springdata | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 

 template0  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +

            |          |          |            |            | postgres=CTc/postgres

 template1  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +

            |          |          |            |            | postgres=CTc/postgres

(4 rows)

Acces privileges..

데이터베이스 지우면 springdata없다고 인텔리제이에서 오류나고,

생성하면 username, password는 커녕 account 테이블 생성조차 안되네요 ㅠㅠ

답변 5

1

저도 같은 증상이에요. 터미널에서 확인이 안되서

인텔리제이 툴로 확인중입니다....

0

꽁손님의 프로필 이미지
꽁손
질문자

일단 pgadmin사용 해서 잘되는거 확인했네요.. 터미널은 전혀 안되지만요..

감사합니다.

0

백기선님의 프로필 이미지
백기선
지식공유자

spring.jpa.hibernate.ddl-auto=update

이 설정이 있다면 만들 수 있어야 하는데 뭔가 이상하네요. 도커 말고 PostgreSQL DB를 직접 설치해서 써보세요. Pgadmin 같은 툴을 써서 보시면 좀 더 편하게 보실 수도 있을테구요.

0

꽁손님의 프로필 이미지
꽁손
질문자

터미널로 crate table account;를 해야 보여요..

선생님께서는 Uesr로 만드시는 예제를 보여주실때 삭제하고 run을 했을경우 자동으로 생성되었잖아요? 그런데 전 생기지도 않습니다..

0

백기선님의 프로필 이미지
백기선
지식공유자

\dt로 확인했을 때 account 테이블이 보이나요?

꽁손님의 프로필 이미지
꽁손

작성한 질문수

질문하기