본문 바로가기
반응형

IT/Java394

[JPA] @DynamicInsert, @DynamicUpdate 란? ORM 을 사용할 경우 Entity 를 save method를 사용해서 Insert 혹은 Update 를 할수 있다. 이때 Entity 의 모든 항목을 채워주지 않으면 해당 컬럼은 default 값이 잡혀 있지 않는 한 Null로 체크가 된다. Default의 대해서는 db에서도 가능하지만 JPA에서 설정은 아래 참고포스팅을 참고바란다. 설정되지 않는 값들은 제외하고 설정하는 값들만 insert 와 update 를 되게 하려면 @DynamicInsert, @DynamicUpdate 를 사용하면 된다. 비슷한 내용의 stackoverflow 글이 있는데 도움이 될것이다. https://stackoverflow.com/questions/21721818/why-does-not-hibernate-set-dyna.. 2024. 1. 10.
UUID 생성(GUID) in Java 자바에서 GUID 및 UUID 를 생성하는법에 대해서 다룰 포스팅이다. UUID 와 GUID등에 대해서는 아래 참고 포스팅을 참고 바란다. String으로 UUID를 만드려며 Java.Util 클래스를 사용한다. 아래와 같다. import java.util.UUID; public class Main { public static void main(String[] args) { String uuid = UUID.randomUUID().toString(); System.out.println(uuid); } } 참고 포스팅 https://thenicesj.tistory.com/675 UUID란?(Universally Unique Identifier) 네트워크에서 고유성이 보장되는 id를 만들기 위한 규약이다. .. 2024. 1. 6.
[Error] After saving the identifier must not be null! Spring Data JDBC를 사용하는중에 아래와 같은 에러가 발생하였다. After saving the identifier must not be null! 해석을 해보면 식별자가 Null이다. 라는 의미여서 Entity 와 sql을 확인해보았는데 오타는 없었다. 문제는 데이터엑세스 계층을 담당하는 repository에서 는 CrudRepository를 사용하는데 여기서 참조되는 Entity에서 @Id 가 지정이 되지 않아서 발생한 문제였다. Entity에서 @Id를 넣어주면서 해결. public class Test { @Id private long testId; private String testName; } 2024. 1. 4.
숫자 자리수 0으로 채우기 이전 포스티에서 정규식에 대해 다룬적이 있다. 정규식 관련 내용은 아래 참고 포스팅을 참고 바란다. 정규식과 비슷한 내용으로 숫자 왼쪽에 0을 채우는 방법에 대해서 적어볼 것이다. 예를들어 회원번호가 THENICESJ1 THENICESJ2 THENICESJ3 THENICESJ4 . . . 이런식으로 쌓이는 테이블이 있다면 10의자리가 되면 THENICESJ9 THENICESJ10 이렇게 자리수가 바뀌고 100의 자리로, 1000의 자리로 가면 자리수가 계속해서 많아진다. 이럴경우를 대비해서 THENICESJ0001 THENICESJ0002 .. .. THENICESJ0010 . . THENICESJ0100 이렇게 특정 자리수를 고정해두고 앞의 빈칸을 0으로 채우면 좋은 방법이다. 방법은 간단하다. int.. 2023. 12. 28.
@ColumnDefalut Annotation 이전 포스팅에서 lombok 에서 제공하는 Builder.Default 에 대해서 다룬적이 있다. 자세한 내용은 아래 참고 포스팅을 참고 바란다. 이번 포스팅에서는 @ColumnDefalut annotation이다. Builder.Default 와 비슷하게 사용이 되고, 사용위치는 entity에서 사용이된다. entity 는 ORM 에서 사용되고 자세한 내용은 참고 포스팅 참고 바란다. @ColumnDefault("원하는값") 처럼 사용한다. @ColumnDefault("test") private String id; 이렇게 해주면 entity 를 DDL 시킬 경우 CREATE TABLE tablename( ... ... ... id varchar(...) default "test" not null ..... 2023. 12. 27.
@Builder.Default [lombok] 자바에서 Dto 생성시 Builder를 자주 사용한다. 자세한 내용은 아래 참고 포스팅을 참고 바란다. 이번엔 이 builder를 사용하게 될때 값을 default로 셋팅할수 있는 annotation을 가져왔다. 만약 코드에서 TestBuilderInDto newdto = TestBuilderInDto.builder().id("dtoid").build(); 이렇게 되어있고, TestBuilderInDto 가 @Data @Builder @AllArgsConstructor public class TestBuilderInDto { private String id; private String name; } 이렇게 되어있다면 newdto 는 id 값만 설정이 되어서 객체가 생성이 된다. name에 default로.. 2023. 12. 24.
marshalling / unmarshalling (직렬화와의 차이 feat. 코드베이스) marshalling의 단어 뜻은 정렬시키기, 순위 결정 이라는 뜻을 갖고 있다. 컴퓨터 에서 말하는 마샬링은 한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정 이라고 한다. https://ko.wikipedia.org/wiki/%EB%A7%88%EC%83%AC%EB%A7%81_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99) 마샬링 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 컴퓨터 과학에서 마셜링(marshalling, l을 하나만 사용하여 marshaling이라고도 표기)이란 한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형 ko.wikipedia.org .. 2023. 12. 20.
JSONObject 에 대해서 자바에서 String 을 json으로 변환을 하기 위해서는 JsonObject 를 알아야한다. 사용을 위해서 기본적인 dependency와 import는 아래와 같다. cohttp://m.googlecode.json-simple json-simple 1.1.1 import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; 먼저 코드를 살펴보면 public static void Test() throws ParseException{ String jsonstr = "{\"id\":\"test\", " + "\"pw\":\"test\"" + "}"; JSONParser jsonParser = new JSONParser(); Object .. 2023. 12. 19.
Java 에서 Redis 사용하기 (@RedisHash , ValueOperations) 레디스에 대한 내용과 셋팅은 아래 참고 포스팅 참고 바란다. Java 에서 Redis 를 사용하기 위해서는 2가지 방법이 있다. (물론 이 밖에도 방법은 있다.) @RedisHash 사용 일반 ORM 프로젝트에서 Entity 를 사용하듯이 @Entity 대신에 @Getter @RedisHash( timeToLive = 30) @NoArgsConstructor public class Person { ...이하 생략 이렇게 사용이 가능하다. 그럼 @Id 기준으로 key 값이 설정되어 redis를 사용할수 있다. 그리고 @configuration 등 으로 Bean에 @EnableRedisRepository 를 설정해줘야 Repository 를 Redis로 읽을수 있다. 참고로 pom.xml 의존성은 아래와 같.. 2023. 12. 6.
반응형