profile
viewpoint

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha a4521839f42b09d577e27f1574829dce25960d54

fix test code

view details

push time in 3 hours

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha cfe4cc00b750199448b230045794067634c59c56

polish

view details

push time in a day

PR opened spring-projects/spring-framework

fix typo in doc
+2 -2

0 comment

1 changed file

pr created time in 2 days

push eventwonwoo/spring-framework

wonwoo

commit sha c94efc21a6f17d0379dc3984583a90fc1b910976

fix typo

view details

push time in 2 days

startedNetflix/dispatch

started time in 3 days

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha dae77071794f0e2fc12d6823442c9ad8dd6aab2c

polish

view details

push time in 4 days

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 7b5ad63827488e743871ace932c57caca738200e

add coroutine module

view details

push time in 4 days

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha d1374757e9631ccf0d08cf52f96214b22daf88da

r2dbc version update

view details

push time in 4 days

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 1cad26185b66e5fe26f2a4b0e1f06f6256e3925d

Mono.defer 변경

view details

wonwoo

commit sha aae5d227e4f050aea222a893041713cd87357634

defer 변경

view details

push time in 4 days

push eventwonwoo/spring-data-commons

wonwoo

commit sha 40a6f14874e010140995704153691489e4537b62

Javadoc fix typo

view details

push time in 4 days

fork wonwoo/spring-data-commons

Spring Data Commons. Interfaces and code shared between the various datastore specific implementations.

https://spring.io/projects/spring-data

fork in 4 days

push eventwonwoo/spring-kotlin-coroutine-example

wonwoo

commit sha 96f24986481c7379b12aaccc53ae42056c23aff6

simple test

view details

push time in 6 days

push eventwonwoo/spring-kotlin-coroutine-example

wonwoo

commit sha 19de7ce80f5f995464ab1ff1bc59c1481cf7027b

polish

view details

push time in 6 days

create barnchwonwoo/spring-kotlin-coroutine-example

branch : master

created branch time in 9 days

created repositorywonwoo/spring-kotlin-coroutine-example

created time in 9 days

create barnchwonwoo/functional-binding

branch : master

created branch time in 11 days

created repositorywonwoo/functional-binding

created time in 11 days

push eventwonwoo/spring-boot

wonwoo

commit sha f4d64e6d05efceff08e6a424425c713773af16b9

webclient configuration of reactive elasticsearch

view details

push time in 12 days

PR opened spring-projects/spring-boot

webclient configuration of reactive elasticsearch

<!-- Thanks for contributing to Spring Boot. Please review the following notes before submitting you pull request.

Security Vulnerabilities

STOP! If your contribution fixes a security vulnerability, please do not submit it. Instead, please head over to https://pivotal.io/security to learn how to disclose a vulnerability responsibly.

Dependency Upgrades

Please do not open a pull request for a straightforward dependency upgrade (one that only updates the version property). We have a semi-automated process for such upgrades that we prefer to use. However, if the upgrade is more involved (such as requiring changes for removed or deprecated API) your pull request is most welcome.

Describing Your Changes

If, having reviewed the notes above, you're ready to submit your pull request, please provide a brief description of the proposed changes. If they fix a bug, please describe the broken behaviour and how the changes fix it. If they make an enhancement, please describe the new functionality and why you believe it's useful. If your pull request relates to any existing issues, please reference them by using the issue number prefixed with #. -->

+32 -0

0 comment

3 changed files

pr created time in 12 days

PR opened mybatis/spring-boot-starter

polish
+9 -49

0 comment

2 changed files

pr created time in 12 days

push eventwonwoo/spring-boot-starter

wonwoo

commit sha 19e8935bbe2f9315b175f8027640cb28fb476442

polish

view details

push time in 12 days

fork wonwoo/spring-boot-starter

MyBatis integration with Spring Boot

fork in 12 days

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 5f0f384d4590d4e816363ba912eb289c1365e415

version upgrade

view details

wonwoo

commit sha bfcd1eb2fa65adbf3b91e0f180a64eb4029a3354

add rxjava test

view details

push time in a month

push eventwonwoo/spring-boot

wonwoo

commit sha 35b9aa106105db669fcaf1a2a7edfb5597dd7381

missed AutoConfiguration in `spring.factories`

view details

push time in a month

push eventwonwoo/armeria-workshop

wonwoo

commit sha ea91a4e2cdcfbe4d90be795da34c0e6458d7fa8e

spring boot version upgrade

view details

wonwoo

commit sha 6bcb3b2f564e9340f4330e6dca7665ad1bfabdba

add tests

view details

push time in a month

startedhttp4k/http4k

started time in a month

startedyegor256/cactoos

started time in a month

startedcode-review-checklists/java-concurrency

started time in a month

startedmixitconf/mixit

started time in 2 months

push eventwonwoo/armeria-workshop

wonwoo

commit sha 9b594c3378d201b712b47c3b11624c5b8f9fa8f0

add history events

view details

push time in 2 months

push eventwonwoo/armeria-workshop

wonwoo

commit sha 750787fb404de5c4fd377b9848f665d439a85f28

add sample

view details

push time in 2 months

push eventwonwoo/armeria-workshop

wonwoo

commit sha 430d4643a33eca292d764da8dc9a959dbd0d8fce

add sample

view details

push time in 2 months

create barnchwonwoo/armeria-workshop

branch : master

created branch time in 2 months

created repositorywonwoo/armeria-workshop

created time in 2 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 09b50468a032f389a6f4ba2576883fa174bec544

add module rxjava2

view details

push time in 3 months

startedgithub-api/github-api

started time in 3 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha c2e5419ba53730028b5dcbd87e3778e1b6fd92fc

spring boot version upgrade

view details

wonwoo

commit sha 7eb3871e2dab4f8d7c88acc8af862cde534ae6b3

embed mongo test remove

view details

wonwoo

commit sha 810f8355f34aaca8e0dcf005a5cce96d2b022d24

test fail

view details

wonwoo

commit sha c79a12571ea40a3468f6b78b303a0a596da4f9ef

Merge remote-tracking branch 'origin/master'

view details

push time in 3 months

push eventwonwoo/spring-reactive-blog

wonwoo

commit sha de8ddc227349263f070f36730e143b95e4e4340e

version upgrade

view details

push time in 3 months

push eventwonwoo/testcontainers-test

wonwoo

commit sha bd237292e71634798705bab472ee417c5dc3d665

spring boot version upgrade

view details

push time in 3 months

push eventwonwoo/resilience4j

wonwoo

commit sha 50a7e8950a66d7a0de6b598a1039ac7d6ef71538

resilience4j work without an actuator. #753

view details

wonwoo

commit sha a1c4eab2c64c86a232cb4794b3066daf936a64ec

Merge remote-tracking branch 'origin/master'

view details

push time in 3 months

issue openedresilience4j/resilience4j

resilience4j work without an actuator.

resilience4j work without an actuator. #753

created time in 3 months

PR opened resilience4j/resilience4j

resilience4j work without an actuator.
+64 -63

0 comment

4 changed files

pr created time in 3 months

push eventwonwoo/resilience4j

wonwoo

commit sha 0626376675dfbd3277794ff4d460d754f1c28532

resilience4j work without an actuator.

view details

push time in 3 months

fork wonwoo/resilience4j

Resilience4j is a fault tolerance library designed for Java8 and functional programming

fork in 3 months

push eventwonwoo/spring-boot-oauth2-login

wonwoo

commit sha 20ca9cdde6bd02070bd1e14cc0472fee559d28b7

spring boot version upgrade

view details

push time in 3 months

push eventwonwoo/kotlin-web-fn

wonwoo

commit sha f64f4ddf6817ad5635721e3dd90accd222b155e0

Polish

view details

push time in 3 months

push eventwonwoo/kotlin-web-fn

wonwoo

commit sha fcb230defa38468581d9f213d3159c569017ae57

spring boot version upgrade

view details

push time in 3 months

push eventwonwoo/spring-cloud-wiremock-deepdive

wonwoo

commit sha 12aa2bb01ec47dc4999120adebc221163ea32f0d

spring boot version upgrade

view details

push time in 3 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 4b45c9f0c87857e1b3fb59d1fb01591214f29567

Update README.md

view details

push time in 3 months

startedspring-projects/spring-mobile

started time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha b0db096bf2e72f17d7eb9bb3c128aefdfaba1f8a

spring boot version upgrade

view details

push time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha d4442f84d4c3bf15a3cb55a784aac540bf704583

bug fix

view details

push time in 4 months

push eventwonwoo/github-issues-dashboard

wonwoo

commit sha 1528cec9169577b6417596db0ae4ae69cd13b81b

spring boot version upgrade

view details

push time in 4 months

PR opened spring-io/start.spring.io

Add reactive to rsocket

I think reactor-test should added when select rsocket.

What do you think?

+2 -0

0 comment

1 changed file

pr created time in 4 months

push eventwonwoo/start.spring.io

wonwoo

commit sha 53e3629a810165ce8d62eb5efc96dfa842e9923c

Add reactive to rsocket

view details

push time in 4 months

fork wonwoo/start.spring.io

https://start.spring.io

fork in 4 months

push eventwonwoo/todo-web

wonwoo

commit sha 2ed12a285611285d0fdbbd70145070e4d229fa8a

spring boot version upgrade

view details

push time in 4 months

push eventwonwoo/market-showcase

wonwoo

commit sha 2afd517a2095790a3550de2c6d2993d3ef389705

spring boot version upgrade

view details

wonwoo

commit sha 87e98780726e44a2c6496524e60b4d1ff03554e0

kotlin version upgrade

view details

wonwoo

commit sha 3a3717a18aa40b0c25e35bcf763b88680b1ed340

Polish

view details

push time in 4 months

PR opened spring-projects/spring-boot

remove ConfigurationPropertiesScan description in javadoc

<!-- Thanks for contributing to Spring Boot. Please review the following notes before submitting you pull request.

Security Vulnerabilities

STOP! If your contribution fixes a security vulnerability, please do not submit it. Instead, please head over to https://pivotal.io/security to learn how to disclose a vulnerability responsibly.

Dependency Upgrades

Please do not open a pull request for a straightforward dependency upgrade (one that only updates the version property). We have a semi-automated process for such upgrades that we prefer to use. However, if the upgrade is more involved (such as requiring changes for removed or deprecated API) your pull request is most welcome.

Describing Your Changes

If, having reviewed the notes above, you're ready to submit your pull request, please provide a brief description of the proposed changes. If they fix a bug, please describe the broken behaviour and how the changes fix it. If they make an enhancement, please describe the new functionality and why you believe it's useful. If your pull request relates to any existing issues, please reference them by using the issue number prefixed with #. -->

+2 -3

0 comment

1 changed file

pr created time in 4 months

push eventwonwoo/spring-boot

wonwoo

commit sha 0bdc92abdbb163c7730d505f6fa57083e3eacec3

remove ConfigurationPropertiesScan description in javadoc

view details

push time in 4 months

PR opened reactor/reactor-core

Polish
+3 -3

0 comment

1 changed file

pr created time in 4 months

push eventwonwoo/reactor-core

wonwoo

commit sha 56bea073cd67dd58761921c5220c6d41cffc9daf

Polish

view details

push time in 4 months

fork wonwoo/reactor-core

Non-Blocking Reactive Foundation for the JVM

http://projectreactor.io

fork in 4 months

push eventwonwoo/spring-cloud-wiremock-deepdive

wonwoo

commit sha 59b6342f7ed50b9b4d755482a05888616565bf1a

Polish

view details

push time in 4 months

push eventwonwoo/market-showcase

wonwoo

commit sha a9d0a5a5657955edaf065e54c0feacdfbff57490

Polish

view details

push time in 4 months

PR opened spring-projects/spring-framework

Polish
+2 -2

0 comment

1 changed file

pr created time in 4 months

push eventwonwoo/spring-framework

wonwoo

commit sha 009a3dbba80126cf026a81699d1394bb38a7a724

Polish

view details

push time in 4 months

push eventwonwoo/market-showcase

wonwoo

commit sha b4374854cc7658ca41fd7f4437c5a80741a2cd5f

Polish

view details

push time in 4 months

push eventwonwoo/market-showcase

wonwoo

commit sha 76f643e9b9ea321aa011e3bb5dcafe3dafb54aea

parameter 수정

view details

push time in 4 months

push eventwonwoo/market-showcase

wonwoo

commit sha 2926380b54d92e37a05c00ba76328aaf9913e001

version upgrade

view details

push time in 4 months

push eventwonwoo/github-issues-dashboard

wonwoo

commit sha 96d1d68b054611e7af3738716a88198c3a88801d

add caffeine cache

view details

push time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha e0400ccf284bccdb03dda0596e9bc775df8c57bf

userdetail 수정

view details

push time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 31fcf453ed6311c41e57d83517ce72e91ae7daf8

Polish

view details

push time in 4 months

starteddiennea/herddb

started time in 4 months

PR opened spring-projects/spring-boot

pretty toString print

this pr pretty toString print

+4 -2

0 comment

1 changed file

pr created time in 4 months

push eventwonwoo/spring-boot

wonwoo

commit sha 52949975c96d5ec3a867707d659f519c9c895161

pretty print toString

view details

push time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 182a272ec8a0709f1a2c91e0ac6919849c43ae53

add test autowire mode

view details

push time in 4 months

issue commentmjung1798/spring-boot

orphanRemoval 테스트 문제

사실 어떻게 보면 orphanRemovalCascadeType 과는 영향이 없어야 된다고 생각합니다. (현재 Hibernate 버그라고 봐도 될 것 같아요. 하지만 많이 중요하지 않아 수정이 더딜뿐이 아닐까요?)

물론 같이 사용할 때는 블로그 맨 아래 영속성 전이 + 고아 객체, 생명주기에 있듯이 도메인 주도 설계(DDD) 유용하다고 생각됩니다. 하지만 개별적으로 봤을때는 orphanRemoval 의 기능과 CascadeType 기능은 개별적으로 진행되는게 맞는거 같습니다. orphanRemoval 고아객체 삭제, CascadeType 영속성 전이라 생각하면 될 것 같네요.

또한 블로그의 4.고아객체 의 참고에서도 말햇듯이 해당 상황에선 동일한 기능처럼 동작하곤 합니다.

참고로 조금만 TMI를 히자면 JPA를 처음 접하시는 분들이 오해하는 부분이 있는데 Spring data jpa 프로젝트는 JPA를 좀 더 쉽게(?) 사용할 수 있는 도구일 뿐입니다. 사실상 Spring data 쪽에서 JPA를 직접적으로 제어를 할 수 없습니다. 일종의 쿼리들을 쉽게 날려주는 그런역할? 또는 Spring 과의 좋은 조합?등을 예를들수 있을 것 같습니다.

public interface AccountRepository extends JpaRepository<Account, Long> {

    public Account findByName(String name)

    @Query("select a from Account a")
    public List<Account> getAllAccount()
}

위와 같이 메서드 쿼리@Query 어노테이션등을 이용해서 보다 쉽게 쿼리를 할 수 있다는 장점이 있습니다.

그럼 JPA가 무엇인지 알아야 될텐데 조금 쉽게 설명하자면, 사실 JPA는 스펙을 정의한 것이라고 볼 수 있습니다. 현재(JPA 2.2) 대략 600페이지 조금 안되는 문서가 존재하며 그 스펙에 맞게 개발을 해야 됩니다. 궁금하시면 여기를 참고 하시면 됩니다. 그러나 저희는 그것을 개발하기엔 조금 무리가 있으니 무리보다는 그럴필요가 없으니, 일반적으로는 그 스펙대로 개발된 구현체들을 갖다 쓰곤합니다. 예를들어 jboss의 Hibernate, eclipse의 EclipseLink, apache 의 OpenJPA 등 보다 많은 구현체가 있긴한데 이들이 가장 유명하고 많이 사용하고 있는 것 같습니다. Spring data jpa 역시 기본은 Hibernate 를 사용하고 있지만 원하신다면 다른 구현체로 바꾸실수도 있습니다.

자바 진영에서는 이러한 스펙을 정의하고 표준화시키고 있습니다. 이를 자바스펙요구서(JSR) 이라고 부르며 JPA 역시 JSR에 포함되어 있습니다. 이 외에도 저희들이 자주 사용하고 있는 Servlet, JDBC, DI(Dependency Injection), Validation, Money, JSP 등 대략 200개?(보다 많을 수도 적을수도) 정도가 존재합니다. 이들은 모두 JPA 처럼 대부분 인터페이스만 존재하며 그에 따른 구현체들은 저희가 선택해서 사용할 수 있습니다. 개발적으로 말씀드리면 예를들어 Tomcat(Servlet)을 사용하고 있다가 Jetty(Servlet)로 바꿔도 혹은 또 다른 Servlet 스펙에 맞게 개발만 되어 있다면 어떠한 것을 써도 대부분 문제 없이 사용할 수 있습니다. 이러한 것이 좋은 장점인 것 같습니다.

쓰다보니 꽤 많은 TMI를 했네요. 사실 JPA는 굉장히 런닝커브가 심한편입니다. 저도 아직 많은 부분이 헷갈리곤 합니다. 답변이 제대로 되었는지는 모르겠지만, 공부하는데 도움이 되었으면 좋겠습니다.

감사합니다.

mjung1798

comment created time in 4 months

startedspring-cloud-incubator/spring-cloud-rsocket

started time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 5396f74075541cc3ed97edde57c867e5fec1a724

add repository test

view details

push time in 4 months

PR opened mybatis/spring-boot-starter

Upgrade to Spring Boot 2.2.0
+25 -25

0 comment

13 changed files

pr created time in 4 months

push eventwonwoo/spring-boot-starter

wonwoo

commit sha 1c7ce2b6a5109d6c3bb2b712ea74778cad00345f

Upgrade to Spring Boot 2.2.0

view details

push time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha c4eae778f44f459da866fd96847b53839f8b7dc9

Polish

view details

push time in 4 months

fork wonwoo/spring-boot-starter

MyBatis integration with Spring Boot

fork in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha 736808256b8f7bdceefd69e9f37b2dad16c1bac3

add r2dbc repositories

view details

wonwoo

commit sha 91e1e479e98ac6768aff2a57d8235a4e4f5e6a65

Polish

view details

wonwoo

commit sha ebd93d8098fdc08463988de037071b194b2f263a

add test

view details

push time in 4 months

push eventwonwoo/todo-web

wonwoo

commit sha 5eb7766a327349e9767a6714b9521f487d2925f4

Polish

view details

push time in 4 months

startedmjung1798/spring-boot

started time in 4 months

issue commentmjung1798/spring-boot

orphanRemoval 테스트 문제

안녕하세요? 여기에 답변을 다는게 좋을 것 같아 여기에 달도록 할게요.

일단 먼저 원하시는 답변이 아닐거 같아 죄송합니다. 제가 착각을 했던거 같아요. 저도 김민정님과 동일하게 orphanRemoval = true만으로는 삭제 되지 않네요. 그래서 다시 확인한 결과는 다음과 같습니다.

일단 JPA 스펙상은 위의 코드가 동작을 해야 된다는 스펙인 것 같습니다. 꽤 예전버전(hibernate)이지만 jira에 이슈로 등록 되어 있는게 있는데 위와 같은 현상을 이야기 하는 것 같습니다.

동일하게 orphanRemoval = true만으로는 삭제가 되지 않고 CascadeType.PERSIST 혹은 CascadeType.ALL 을 같이 선언하면 삭제 된다는 내용입니다. 스펙상으로는 orphanRemoval 만으로도 삭제가 되어야 되므로 그 시점엔 수정이 되었던 것 같습니다.

hibernate 4.3.8.Final 버전에선 위의 코드가 정상적으로 동작하여 삭제 되는 테스트를 해봤습니다.

그런데 다른 이슈로 인해 해당 코드는 롤백이 되었습니다. OnetoOne 관계일 경우 cascade 없이 자식 엔티티를 영속화 후 플러쉬 할 경우 에러가 발생하여야 하는데 orphanRemoval = true 지정하면 에러 발생하지 않아 롤백한 것으로 추측이 됩니다.

@Entity
public class Parent {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToOne(mappedBy = "parent", orphanRemoval = true)
    private Child children;
    //..
}

@Entity
public class Child {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToOne
    private Parent parent;
    
    //..
}

@Test
public void test() {
    entityManager.getTransaction().begin();
    Parent parent = new Parent();
    Child child = new Child();

    parent.setChildren(child);
    entityManager.persist(parent);
    entityManager.flush();  //error 
    entityManager.getTransaction().commit();
    entityManager.close();
}

대략 적인 위와 같은 코드는 스펙상 에러가 발생 해야 된다고 하지만 orphanRemoval = true 인하여 에러가 발생 하지 않습니다.(hibernate 4.3.8.Final) 해당 부분이 더욱 크리티컬한 부분이라 롤백을 진행한 것으로 추측이 됩니다.

그 이후로는 더 이상 진행 한 것이 없어 보여 저도 알 길이 없네요ㅠㅠ 만약 orphanRemoval 사용할 경우 CascadeType를 같이 사용해야 되는 것 같습니다. (hibernate 경우)

사실 JPA 구현체들은 대부분 해당 스펙에 맞게 개발이 되어있지만 스펙 변경 및 추가가 될 경우 그에 맞게 개발을 진행 못하는 경우도 있을 것 같아 보입니다.

참고로 JPA의 다른 구현제(eclipselink)는 정상적으로 삭제되는 것을 확인했습니다.

원하시는 내용이 아니어서 죄송합니다. 궁금하신거 있으면 언제든지 물어보세요!

덕분에 좋은 부분 공부했습니다. 감사합니다.

mjung1798

comment created time in 4 months

push eventwonwoo/todo-web

wonwoo

commit sha 21ed831e927d8e4c06d099e40c0df1d4bc099800

spring boot version upgrade

view details

push time in 4 months

push eventwonwoo/todo-web

wonwoo

commit sha 8fbcf58c9e7e7f5445d320ebc19fd5df3b9f333f

spring boot version upgrade

view details

push time in 4 months

push eventwonwoo/spring-boot-kotlin-example

wonwoo

commit sha da525148498adff56176651f246abd15fec55b63

spring boot version upgrade

view details

push time in 4 months

push eventwonwoo/github-issues-dashboard

wonwoo

commit sha acd8fa75d5787f0752ac17d2984700724f1bbf15

spring boot version upgrade

view details

push time in 4 months

more