Skip to content

Commit cbe2123

Browse files
author
Lee Euije
authored
YEL-173 [deploy] v1.1.990
YEL-173 [deploy] v1.1.990
2 parents dee2f5a + 80a7d40 commit cbe2123

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.yello.server.domain.group.entity;
2+
3+
import com.yello.server.global.common.dto.AuditingTimeEntity;
4+
import javax.persistence.Convert;
5+
import javax.persistence.Entity;
6+
import javax.persistence.FetchType;
7+
import javax.persistence.GeneratedValue;
8+
import javax.persistence.GenerationType;
9+
import javax.persistence.Id;
10+
import javax.persistence.JoinColumn;
11+
import javax.persistence.ManyToOne;
12+
import lombok.AccessLevel;
13+
import lombok.AllArgsConstructor;
14+
import lombok.Builder;
15+
import lombok.Getter;
16+
import lombok.NoArgsConstructor;
17+
18+
@Getter
19+
@Entity
20+
@Builder
21+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
22+
@AllArgsConstructor
23+
public class UserGroupData extends AuditingTimeEntity {
24+
25+
@Id
26+
@GeneratedValue(strategy = GenerationType.IDENTITY)
27+
private Long id;
28+
29+
@ManyToOne(fetch = FetchType.LAZY)
30+
@JoinColumn(name = "group_name", referencedColumnName = "groupName")
31+
private UserGroup group;
32+
33+
@Convert(converter = UserGroupDataTagConterver.class)
34+
private UserGroupDataTag tag;
35+
36+
private String value;
37+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.yello.server.domain.group.entity;
2+
3+
import java.text.MessageFormat;
4+
import java.util.Arrays;
5+
import lombok.Getter;
6+
import lombok.RequiredArgsConstructor;
7+
8+
@Getter
9+
@RequiredArgsConstructor
10+
public enum UserGroupDataTag {
11+
ADDRESS("ADDRESS"),
12+
POPULATION("POPULATION");
13+
14+
private final String intial;
15+
16+
public static UserGroupDataTag fromCode(String dbData) {
17+
return Arrays.stream(UserGroupDataTag.values())
18+
.filter(v -> v.getIntial().equals(dbData))
19+
.findAny()
20+
.orElseThrow(() -> new IllegalArgumentException(
21+
MessageFormat.format("존재하지 않는 그룹 정보 key 타입 입니다. {0}", dbData)));
22+
}
23+
24+
public String intial() {
25+
return intial;
26+
}
27+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.yello.server.domain.group.entity;
2+
3+
import javax.persistence.AttributeConverter;
4+
import javax.persistence.Converter;
5+
import lombok.extern.log4j.Log4j2;
6+
7+
@Converter
8+
@Log4j2
9+
public class UserGroupDataTagConterver implements AttributeConverter<UserGroupDataTag, String> {
10+
11+
@Override
12+
public String convertToDatabaseColumn(UserGroupDataTag userGroupType) {
13+
if (userGroupType == null) {
14+
return null;
15+
}
16+
return userGroupType.getIntial();
17+
}
18+
19+
@Override
20+
public UserGroupDataTag convertToEntityAttribute(String dbData) {
21+
if (dbData == null) {
22+
return null;
23+
}
24+
try {
25+
return UserGroupDataTag.fromCode(dbData);
26+
} catch (IllegalArgumentException exception) {
27+
log.error("failure to convert cause unexpected code" + dbData + exception);
28+
throw exception;
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)