์ฌ์ฉ์๊ฐ JSON ์ง๋ ฌํ๋ฅผ ์ฌ์ฉ์ ์ ์ํ ์ ์๋ ๊ณต์ฉ ObjectMapper ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
์ด๋ Azure/azure-cosmosdb-java#153์ ๋ ๋์ ์ต์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ค์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฝ์ ํ: https://devblogs.microsoft.com/cosmosdb/difference-between-null-and-undefined/ Java SDK๋ก ์ด๋ฅผ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํ์ต๋๋ค.
๊ธฐ๋ณธ ObjectMapper๋ ํญ์ null ํ๋๋ฅผ ์ง๋ ฌํํ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๋ด ์ํฐํฐ ํด๋์ค์ ttl
ํ๋๋ฅผ ์ถ๊ฐํ ๋ ๋๋ ์ด๊ฒ์ ์ฐ์ฐํ ๋ฐ๊ฒฌํ์ต๋๋ค. ํน์ Cosmos DB ํญ๋ชฉ์ ์
๋ฐ์ดํธํ ๋ ์ฌ์ฉ์ ์ง์ TTL์ ์ค์ ํ๊ณ ์ถ์ต๋๋ค. ๋๋ถ๋ถ์ ํญ๋ชฉ์ ์ฌ์ฉ์ ์ง์ TTL์ด ํ์ํ์ง ์์ผ๋ฉฐ ๋จ์ํ ์ปจํ
์ด๋ TTL์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๋๋ null์ด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ttl
ํ๋๋ฅผ null
๋ก ์ค์ ํ๋ฉด ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ ๋ ฅ ttl 'null'์ด ์๋ชป๋์์ต๋๋ค. ๋ง๋ฃ๋์ง ์์์ ์๋ฏธํ๋ '2147483647' ๋๋ '-1'๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ 0์ด ์๋ ์์ ์ ์๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ ์ ์๋ ๋ฌธ์์ ttl
๋ฅผ null
๋ก ์ค์ ํ๋ฉด ์๋ํ๋ค๊ณ ๋ช
์๋์ด ์์ง๋ง null
๊ฐ ๋์ผํ ์๋ฏธ์ธ์ง๋ ํ์คํ์ง ์์ต๋๋ค.
@kushagraThapar SDK์ ์ผ๋ถ ๊ณ ๊ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ค์ ๋ก ์ ํํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ๋ช ๊ฐ์ง ์๋ฃจ์ ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ๊ทธ๋์ ๋น์ ์ ๊ทธ๊ฒ์ "์ฃผ์ฐจ์ฅ" ๋ฐ์ผ๋ก ๋ค์ ์ฎ๊ธฐ๊ณ ๋ ๋์ ์ฐ์ ์์๋ก ํ ๋นํ ์ ์์ต๋๊น?
์๋ฅผ ๋ค์ด https://github.com/FasterXML/jackson-module-kotlin ์ด SDK์ ์จ๊ฒจ์ง ์ ์ ObjectMapper์ ๋ฑ๋ก๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ Kotlin ํด๋์ค๋ฅผ ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ณ๊ฒฝํ ์ ์๋ ๋ฐ์ดํฐ ํด๋์ค์ ์ญ์ง๋ ฌํ๊ฐ ์๋ํ๋๋ก ํ๊ธฐ ์ํด Kotlin ํด๋์ค์ ์๋์ผ๋ก ์ฃผ์์ ๋ฌ์์ผ ํฉ๋๋ค.
data class Email <strong i="9">@JsonCreator</strong> constructor(
<strong i="10">@param</strong>:JsonProperty("email") val email: String // note the redundant specification of "email"
)
๋๋ ์ ํ๋ฆฌ์ผ์ด์
์๋ช
์ฃผ๊ธฐ์ ์ด๊ธฐ ์์ ์ ์ ์ ObjectMapper ์ธ์คํด์ค์์ Utils.getSimpleObjectMapper().registerModule(new KotlinModule())
๋ฅผ ํธ์ถํ๋ ๊ฒ๊ณผ ๊ฐ์ ํดํน์ ์ํํ์ญ์์ค.
@dkroehan ์ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ttl
ํด๋์ค ํ๋์ <strong i="16">@get</strong>:JsonInclude(JsonInclude.Include.NON_NULL)
(Kotlin)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค.
@xinlian12 - ์ด ๋ฌธ์ ์ ๋ํ ์๊ฐ์?