문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 | 다음 판 양쪽 다음 판 | ||
java:jpa:converter [2018/07/11 14:43] kwon37xi |
java:jpa:converter [2018/07/11 14:44] kwon37xi |
||
---|---|---|---|
줄 6: | 줄 6: | ||
<code java> | <code java> | ||
@Converter | @Converter | ||
- | public class PersonNameConverter implements | + | public class PersonNameConverter implements AttributeConverter< |
- | | + | |
- | + | ||
- | private static final String SEPARATOR = ", "; | + | |
@Override | @Override | ||
public String convertToDatabaseColumn(PersonName personName) { | public String convertToDatabaseColumn(PersonName personName) { | ||
- | | + | |
- | return null; | + | |
- | } | + | |
- | + | ||
- | StringBuilder sb = new StringBuilder(); | + | |
- | if (personName.getSurname() != null && !personName.getSurname() | + | |
- | .isEmpty()) { | + | |
- | sb.append(personName.getSurname()); | + | |
- | sb.append(SEPARATOR); | + | |
- | } | + | |
- | + | ||
- | if (personName.getName() != null | + | |
- | && !personName.getName().isEmpty()) { | + | |
- | sb.append(personName.getName()); | + | |
- | } | + | |
- | + | ||
- | return sb.toString(); | + | |
} | } | ||
@Override | @Override | ||
public PersonName convertToEntityAttribute(String dbPersonName) { | public PersonName convertToEntityAttribute(String dbPersonName) { | ||
- | if (dbPersonName == null || dbPersonName.isEmpty()) { | + | // DB column to object 구현 |
- | return null; | + | |
- | } | + | |
- | + | ||
- | String[] pieces = dbPersonName.split(SEPARATOR); | + | |
- | + | ||
- | if (pieces == null || pieces.length == 0) { | + | |
- | return null; | + | |
- | } | + | |
- | + | ||
- | PersonName personName = new PersonName(); | + | |
- | String firstPiece = !pieces[0].isEmpty() ? pieces[0] : null; | + | |
- | if (dbPersonName.contains(SEPARATOR)) { | + | |
- | personName.setSurname(firstPiece); | + | |
- | + | ||
- | if (pieces.length >= 2 && pieces[1] != null | + | |
- | && !pieces[1].isEmpty()) { | + | |
- | personName.setName(pieces[1]); | + | |
- | } | + | |
- | } else { | + | |
- | personName.setName(firstPiece); | + | |
- | } | + | |
- | + | ||
- | return personName; | + | |
- | } | + | |
} | } | ||