Skip to content

Commit

Permalink
YEL-173 [deploy] v1.1.990
Browse files Browse the repository at this point in the history
YEL-173 [deploy] v1.1.990
  • Loading branch information
euije authored Oct 3, 2023
2 parents dee2f5a + 80a7d40 commit cbe2123
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.yello.server.domain.group.entity;

import com.yello.server.global.common.dto.AuditingTimeEntity;
import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@Builder
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class UserGroupData extends AuditingTimeEntity {

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

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "group_name", referencedColumnName = "groupName")
private UserGroup group;

@Convert(converter = UserGroupDataTagConterver.class)
private UserGroupDataTag tag;

private String value;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.yello.server.domain.group.entity;

import java.text.MessageFormat;
import java.util.Arrays;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public enum UserGroupDataTag {
ADDRESS("ADDRESS"),
POPULATION("POPULATION");

private final String intial;

public static UserGroupDataTag fromCode(String dbData) {
return Arrays.stream(UserGroupDataTag.values())
.filter(v -> v.getIntial().equals(dbData))
.findAny()
.orElseThrow(() -> new IllegalArgumentException(
MessageFormat.format("존재하지 않는 그룹 정보 key 타입 입니다. {0}", dbData)));
}

public String intial() {
return intial;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.yello.server.domain.group.entity;

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import lombok.extern.log4j.Log4j2;

@Converter
@Log4j2
public class UserGroupDataTagConterver implements AttributeConverter<UserGroupDataTag, String> {

@Override
public String convertToDatabaseColumn(UserGroupDataTag userGroupType) {
if (userGroupType == null) {
return null;
}
return userGroupType.getIntial();
}

@Override
public UserGroupDataTag convertToEntityAttribute(String dbData) {
if (dbData == null) {
return null;
}
try {
return UserGroupDataTag.fromCode(dbData);
} catch (IllegalArgumentException exception) {
log.error("failure to convert cause unexpected code" + dbData + exception);
throw exception;
}
}
}

0 comments on commit cbe2123

Please sign in to comment.