전체 글 (730) 썸네일형 리스트형 JPA orphanRemoval 이란? onetoone 관계의 두 객체가있었다. 둘은 조인을 하고있었고 연결된 다른 객체를 삭제하려고 delete 쿼리를 날렸지만 되지않았다. 당연히 안된다. 이건 JPA를 떠나서 DB 제약조건 때문에 안되는것이다. 바로, 연결된 다른 객체에서 값을 잃어버리기 때문이다. 그래서 찾아본 결과 JPA orphanRemoveal을 제공해준다. 이게 무엇이냐? @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER) @JoinColumn(name="post_comment_id") private PostComment postComment; 이런식으로 고아 객체 트루로 주게되면 post에서 하위값을 null로 set하고 저장하면 .. [Jpa] delete 관련 잘 안됨 JPA에서 QueryDSL 하기 귀찮아서 그냥 JPQL로 사용하던 중 문제가 발생 delete 쿼리에서 자꾸 DML을 지원안한다는둥 이상한 버그가 많이 떠서 안된다.... 해결 방법 (Modifying) @Modifying @Query("delete from PostComment m where m.post.postId = :postId") void deletePostComment(Long postId); 추가로 서비스 단에 트랜잭션 묶어주기 수정, 삭제는 트랜잭션을 메소드 별로 묶어주는게 좋다. 이유는.. 트랜잭션의 기본을 안다면.. 다알듯... 무튼 JPA는 자동 트랜잭션 처리를 지원해주지만. 혹시나 몰라서 명시를 하긴했다. 사실 해결은 Modifying이 크다. 앞으로는 그냥 QueryDsl로 설계해.. [Flutter] 클릭 이벤트 처리와 화면 전환 일단 텍스트의 값을 받아야 한다. 플러터에서는 이런 컨트롤러를 사용해서 값을 받고, 그다음에 리소스낭비를 줄이기 위해 dispose메소드를 실행시켜야한다고 한다. 이런식으로 TextField에서 컨트롤러를 매핑하는 작업을 한다. if(controller.text == 'smith' && controller2.text == '1234'){ Navigator.push(context,MaterialPageRoute(builder: (BuildContext context)=> Dice())); 실제로 값을 사용할 때는 이렇게 사용하면 된다. 그렇게 되면 controller.text로하면 텍스트 값을 가져오는 것이다. 일단 토스트 메시지 같은 메서드를 만들어준다 void showSnackBar2(BuildCont.. [Flutter] 간단한 로그인 화면 구현 간단한 프로젝트를 진행해보자 아무리 이론을 빠삭하게 해도 결국은 직접 해보지않으면 ... 금방 까먹는다 ㅎㅎ 주말은 앱공부를 하고, 평일에는 인프라 자바 스프링 공부를 하니까... 일단 해보자 main.dart의 파일 내용이다. MyApp이라는 class의 내용을 적어놓고, MaterialApp을 return 한다. title은 dice game으로 두고, Login()을 홈으로 지정하여, return 한다. 해당 하단의 Login 클래스이다. 해당 클래스는 Scaffold를 return하고 Login이라는 텍스트를 타이틀로 한다. 그 Login appbar와 IconButton그리고 해당 하위의 action에 대한 함수 선언까지만 해놓는다. StateLesswight부분에서 노란 색 전구 버튼을 누르면.. [Flutter] 플러터의 위젯 Widget 작은 장치라는 의미이다. 독립적으로 실행되는 작은 프로그램이다. 바탕화면 등에서 날씨나 뉴스, 생활정보 등을 보여준다. 그래픽이나 데이터 요소를 처리하는 함수를 가지고 있다. Flutter상에서의 Widget이란? 1. UI를 만들고 구성하는 모든 기본 단위 요소를 의미한다. 앱 화면을 구성하는 모든 요소를 위젯이라고 한다. 2. 플러터상에서는 눈에 보이지 않는 요소들도 위젯이다. Layout을 돕는 것들도 위젯이다. (정렬,컬럼 등등) 3. 플러트는 모든 위젯을 코드로 관리한다. State 최초로, 정렬된 상태 컴포넌트들이 존재하고있는 상태를 의미한다. 1. Stateless widget 상태가 없는 정적인 위젯.State가 변하지 않는 위젯을 의미한다. Stateless widget이 가.. [Flutter] App을 웹으로 빌드해보자 일단 플러터의 기능들을 웹으로 빌드해보자 일단 저번에 화면 이동하고, 해당 이동된 화면에서 숫자를 증가시키는 등의 함수를 이벤트로 넣어봤다. 무튼 이걸 웹으로 빌드 해보자 1) flutter channel master 2)flutter upgrade flutter devices라고 하면, 크롬이나 ios등등이 뜬다. 이때 노출해야하는 곳이 크롬이라면, 크롬으로 변경하고 빌드하면 정상적으로 웹으로 빌드가 된다. 요로케 된다. 무튼, 다시 좀더 공부를 해보자 [Docker] Nginx 세팅 및 테스트 Nginx 에 대한 기술적인 공부는 하였는데 실제 세팅을 해보자 도커 이미지로 해당 Nginx 를 빌드 및 테스트를 해보려고한다. docker pull nginx 를 하고, 이미지를 빌드 및 run 한다. 사실 여기까지는 그냥 도커에 대한... 설정 내용이다. 이제 엔진 엑스에 대한 설정을 공부해보자 /etc/nginx를 들어가면, 여러 파일들이 보인다. 3개의 파일 위주가 중요하다. 1) nginx.conf 해당 파일은 아래와 같이 생겼다. http 블록이 가장 중요하다. 이 블록에서 include .conf파일로 파일들을 읽고, 해당 nginx를 세팅한다. 2) conf.d / default.d 최신 버전에서는 conf.d에 있고 아닌 버전에서는 site-available하위에 있다. 무튼 해당 파일.. [Flutter] 화면 이동 및 Navigator 화면 이동 및 레이아웃 전환에 대해서 실습을 진행해보자 ElevatedButton을 두고, 해당 안에 onPressed메서드를 추가한다. 그리고, 해당 버튼을 눌렀을떄 Navigator push로 신규 페이지 라우트 객체를 넣어준다. HelloPage2는 다른 다트 파일에 있는 위젯이다. 어찌보면 굉장히 간단하다. 눌렀을때 단순히 클래스 파일만 넘기면 바로 처리가 되는 장점이 있다. 이전 1 ··· 33 34 35 36 37 38 39 ··· 92 다음