์ ์ฒด ๊ธ
-
[ Querydsl ] ๋์ ์ฟผ๋ฆฌ ๋ง๋ค๊ธฐ(BooleanExpression, BooleanBuilder)JPA 2022. 3. 22. 01:26
Querydsl์์ ๋์ ์ฟผ๋ฆฌ ๊ตฌํํ๋ ๋ฐฉ๋ฒ Querydsl์์๋ ๋์ ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด BooleanBuilder์ Where ๋ค์ค ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค. ๋๋ค ๊ฐ์ 'Expression' ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ Where๋ฅผ ์ฒ๋ฆฌํ๋ค๋ ๋ชฉ์ ์ ๊ฐ์ง๋ง, ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค. 1. BooleanBuilder @Test public void ๋์ ์ฟผ๋ฆฌ_BooleanBuilder() throws Exception { String usernameParam = "member1"; Integer ageParam = 10; List result = searchMember1(usernameParam, ageParam); Assertions.assertThat(r..
-
[ JAVA ] Object Mapper : json ์ง๋ ฌํ, ์ญ์ง๋ ฌํ ์ฌ์ฉ๋ฒJAVA 2022. 3. 17. 15:46
json๊ฐ์ฒด๋ฅผ ์๋ฐ ๊ฐ์ฒด๋ก ๋ณํํ๊ธฐ ์ํด Object Mapper๋ฅผ ์ฌ์ฉํ๋ค. ObjectMapper ๋ ? ObjectMapper๋ ๊ธฐ๋ณธ POJO(Plan Old Java Obejcts) ๋๋ ๋ฒ์ฉ Json ํธ๋ฆฌ ๋ชจ๋ธ (JsonNode)๊ฐ์ Json์ ์ฝ๊ณ ์ฐ๋ ๊ธฐ๋ฅ๊ณผ ๋ณํ ์ํ์ ์ํ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. Java ๊ฐ์ฒด๋ฅผ Json์ผ๋ก ์ง๋ ฌํํ๊ณ , Json ๋ฌธ์์ด์ Java ๊ฐ์ฒด๋ก ์ญ์ง๋ ฌํ ํ ๋ ์ฌ์ฉํ๋ค. ObjectMapper ์ฌ์ฉ๋ฒ 1. Object -> String ๋ฌธ์์ด : writeValueAsString ObjectMapper mapper = new ObjectMapper(); Car car = new Car("K5", "gray"); String text = mapper.writeVal..
-
[ JAVA ] ์ง๋ ฌํ Serializable , ์ญ์ง๋ ฌํ DeserializeJAVA 2022. 3. 17. 15:46
์ง๋ ฌํ Serializable , ์ญ์ง๋ ฌํ Deserialize ์ ์ ์ง๋ ฌํ(็ดๅๅ) ๋๋ ์๋ฆฌ์ผ๋ผ์ด์ ์ด์ (serialization)์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ค๋ธ์ ํธ ์ํ๋ฅผ ๋์ผํ๊ฑฐ๋ ๋ค๋ฅธ ์ปดํจํฐ ํ๊ฒฝ์ ์ ์ฅ (์ด๋ฅผํ ๋ฉด ํ์ผ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ์์, ๋๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋งํฌ ๊ฐ ์ ์ก)ํ๊ณ ๋์ค์ ์ฌ๊ตฌ์ฑํ ์ ์๋ ํฌ๋งท์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ด๋ค. ์ค๋ธ์ ํธ๋ฅผ ์ง๋ ฌํํ๋ ๊ณผ์ ์ ์ค๋ธ์ ํธ๋ฅผ ๋ง์ฌ๋งํ๋ค๊ณ ๋ ํ๋ค. ๋ฐ๋๋ก, ์ผ๋ จ์ ๋ฐ์ดํธ๋ก๋ถํฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ถ์ถํ๋ ์ผ์ ์ญ์ง๋ ฌํ ๋๋ ๋์๋ฆฌ์ผ๋ผ์ด์ ์ด์ (deserialization)์ด๋ผ๊ณ ํ๋ค. ์ง๋ ฌํ์ ์ญ์ง๋ ฌํ๋ฅผ ์ํค์์ ์ ์ํ ๊ฒฐ๊ณผ๋ ์ด๋ ์ง๋ง ๊ทธ๋ ๊ฒ ์ฝ๊ฒ ์๋ฟ์ง ์์๋ค. ๐ข ๊ฐ๋จํ ๋งํ์๋ฉด ์ง๋ ฌํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ ํต์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ํ์์ผ๋ก ๋ณํํ๋ ..
-
[ Error ] com.querydsl.core.types.ExpressionException: No constructor found for class with parametersSpringBoot 2022. 2. 23. 12:39
QueryDsl์ ์ด์ฉํด์ Entity์ ์ ์ฒด ํ๋๋ฅผ ํธ์ถํ๋ ๊ฒ์ด ์๋๋ผ ํน์ ํ๋๋ค๋ง ํธ์ถํ๊ฑฐ๋ ์ฐ๊ด๋ ๋ค๋ฅธ Entity์ ํ๋๋ฅผ ๋์์ ํธ์ถํ๊ณ ์ถ์ ๋ Projections.constructor๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ์ด๋ ์ ๋ชฉ์ฒ๋ผ constructor๋ฅผ ๊ตฌ์ฑํ๋ class๊ฐ ์๋ค๋ ์๋ฌ๊ฐ ๋ฐ์ ํ ์ ์๋ค. ์์ธ๊ณผ ํด๊ฒฐ์ฑ Dto.class์์ ์ ์ํ๋ ํ๋์ Repository์์ select๋ก ํํํ๊ณ ์ํ๋ ํ๋๊ฐ ์์ ํ ์ผ์นํ์ง ์์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค. 1. ๋ชจ๋ ํ๋์ ํ์ ์ด ์ผ์นํด์ผ ํ๋ค. 2. ๋ชจ๋ ํ๋์ ์์๊ฐ ์ผ์นํด์ผ ํ๋ค. 3. Repo. ์ชฝ์์์ ํ๋๋ช ๊ณผ Dto ์ชฝ์์์ ํ๋๋ช ์ด ์ผ์นํด์ผํ๋ค. ๋ง์ฝ ๋ค๋ฅด๋ค๋ฉด, Repo. ์ชฝ์์ ์ ์ฝ๋์ ๊ฐ์ด .as("๋ณ์นญ") ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ D..
-
[ JPA ] ๋ณตํฉํค(composite key) ๋งคํ (@EmbeddedId)JPA 2022. 2. 21. 14:40
ํ์ฌ Group๊ณผ Member ํ ์ด๋ธ ์ฌ์ด์ GroupMemberMap์ด๋ผ๋ ๋งคํ ํ ์ด๋ธ์ ๋ง๋ค์ด ๊ทธ๋ฃน๋ณ๋ก ๋ฉค๋ฒ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ค ํ๋ค. 1. ๋จผ์ GroupMemberMap ํ ์ด๋ธ ์์ฑ ํ groupId์ MemberId๋ฅผ PK๋ก ์ค์ ํด groupId์ MemberId๋ฅผ ๋ณตํฉํค(๋ฐ์ดํฐ๋ฅผ ๋ํํ๋ ํค๊ฐ ์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒ)๋ก ๊ฐ์ง๊ฒ ์ค์ ํด ๋์๋ค. 2. Primary Key Class์๋ @Embeddable ์ด๋ ธํ ์ด์ ์ ๋ฌ์์ค๋ค. @Entity @Table(name = "group_member_map") @NoArgsConstructor @AllArgsConstructor @Data @Builder @EntityListeners(AuditingEntityListener.class) publ..
-
[ thymeleaf ] ์ด๋ฏธ์ง ๊ฒฝ๋ก ๊ฐ์ ธ์ค๊ธฐ๊ธฐํ 2022. 1. 5. 15:41
ํผ๋ธ ๋ฐ์์ ๋ ์ด๋ ๊ฒ span tag์ url์ด ์ด๋ ๊ฒ ๋ค์ด๊ฐ ์์๋๋ฐ ์ด๋ฏธ์ง๊ฐ ์๊ฐ์ ธ์์ ธ์ ์ด๋ ๊ฒ ์์ ํ๋ ๊ฐ์ง๊ณ ์๋ค....ใ ์ฐธ์กฐ : https://stackoverflow.com/questions/35789526/how-to-set-background-url-for-css-files-in-thymeleaf How to set background url for css files in thymeleaf? I have a thymeleaf template where I don't have CSS files imported and wanted to declare style attribute for the body element with background-image: url{/image.jpg} pro..
-
[ intelliJ ] ์๋ฒ ์ฌ๊ฐ๋์์ด ์๋ก๊ณ ์นจ ํ ์ฝ๋ ์ค์๊ฐ ๋ฐ์๊ธฐํ 2021. 12. 22. 14:18
1. gradle์ Dependencies ์ถ๊ฐ developmentOnly("org.springframework.boot:spring-boot-devtools") 2. application.yml ์ ์์ฑ๊ฐ ์ค์ spring: devtools: livereload: enabled: true restart: enabled: true thymeleaf: cache: false 3. IntelliJ IDEA -> Preferences (๋จ์ถํค Cmd + , ) -> Build, Execution, Deployment -> Compiler์์ 'Build Project automatically' ์ ์ฒดํฌ ๊ทธ๋ผ intelliJ์์ ์๋ฒ๋ฅผ ์ฌ๊ฐ๋ํ์ง ์๊ณ ๋ ์๋ก๊ณ ์นจ ๋ง์ผ๋ก ์์ ์ฌํญ์ ๊ธ๋ฐฉ ํ์ธํ ์ ์๋ค.
-
[ git ] Merge, Squash and merge, Rebase and merge ์ฐจ์ดgit 2021. 12. 11. 23:58
์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด git์์ Merge, Squash and merge, Rebase and merge ์ด๋ ๊ฒ ์ธ๊ฐ์ง์ Merge๋ฅผ ์ง์ํด์ฃผ๋๋ฐ ์ํฉ์ ๋ง๊ฒ Merge ๋ฐฉ์์ ๊ด๋ฆฌํ๋๊ฒ ํ์คํ ๋ฆฌ ์ถ์ ์ ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ ์ฐจ์ด์ ์ ์ ๋ฆฌํด๋ณด์๋ค. Merge Merge๋ ์์๊ฐ์ด a, b, c ๋ฅผ refer ํ๋ m ์ปค๋ฐ ๋ ธ๋๊ฐ ์์ฑ๋๊ณ m์ parent๋ก Init, c ๋ฅผ ๊ฐ์ง๋ค. ์ปค๋ฐ m์์๋ถํฐ ๋ค๋ก ๋๋์๊ฐ๋ฉด์ ๋ถ๋ชจ๋ฅผ ๋ชจ๋ ์ฐพ์ ๋ธ๋ ์น๋ฅผ ๊ตฌ์ฑํ๊ณ , ์ปค๋ฐ m์ ๋ถ๋ชจ๋ก c, Init์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, c๋ b, b๋ a, a๋ Init์ ๋ค์ ๋ถ๋ชจ๋ก ๊ฐ์ง๊ฒ ๋๋ค. ์ด ํ์์ ๋ชจ๋ backtrace ํ์ฌ, Init -> a -> b -> c -> m์ด๋ผ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ณ ์ด ๊ตฌ์กฐ๊ฐ ๋ชจ๋ ํ์คํ ๋ฆฌ์ ๋จ..