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
반응형

+ Recent posts