728x90
반응형
UUID로 처리한 것이 '문자깨짐' 처리처럼 나타나서,
여러가지로 검증해 보았는데, 지극히 정상적임을 확인했다.
즉, 코드상에서 Query 등을 하면, 제대로 보이게 됩니다.
필자가 수행한 것은 id ( auto incremental key)를 UUID로 변경하였습니다.
@Data
@Table(name="user")
@Entity
@Getter
@Setter
@ToString
@AllArgsConstructor
@EqualsAndHashCode
public class User {
/* Auto Incremental Key
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, updatable = false)
private Long id;
*/
// UUID
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name="uuid2", strategy = "uuid2")
@Column(name="individual_user_id", columnDefinition = "BINARY(16)")
private UUID id;
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String role;
}
Respository와 연결하고, Test 프로그램을 수행한 후,
Heidi 프로그램을 통해 살표보니, 아래와 같이 해당 Field값이 문자의 깨짐과 같이 보입니다.
individual_user_id 열의 값들이 깨져 보이고, 전혀 UUID 같이 보여지지 않아, 당황하였고, 뭔가 내가 잘못하였나(charset등 )싶어 구글링해 보니.
- 저장 공간을 아끼기 위해,
- '-'를 빼고, HEX()처리하여 1byte글자처럼나타냈기
때문에 깨진 것 처럼 보인다고 합니다.
java 프로그램에서 select를 해서 출력해 보면, UUID값이 제대로 나타나고 활용할 수 있습니다.
System.out.println( userRepository.findByUsername("lswbhm88@abc.com").get() );
728x90
반응형