java
-
[java] 자료형 정리java 2021. 6. 24. 11:50
자바 데이터 타입 primitive numeric Integral 정수 byte short int long char floating 부동소수점 float double boolean reference class interface array enum primitive 자료형은 new 키워드로 생성할 수 없다. primitive 자료형은 상수로만 값을 세팅할 수 있다. (int i =1000) String 은 "hello" 처럼 상수로 표기가 가능하지만, primitive 자료형에서 제외된다. (자바에서 특별대우 해주는 자료형)
-
[FILE] 파일 분할 읽기java 2021. 4. 21. 13:22
byte 별로 파일을 분할하여 읽을 계획입니다. 1GB -> 1MB * 10 1. readFromByte : 필요 크기만 읽을 메소드 public ByteArrayOutputStream readFromByte(BufferedInputStream bis, long size, int checkByte) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { if(checkByte != -1) baos.write(checkByte); // 체크용으로 사용했던 byte를 추가 for(int b =0; (b = bis.read()) != -1;) { baos.write(b); int lll = baos.size(); if(baos.size()+1>si..
-
[Aws SDK] CreateMultipartUploadRequestjava 2021. 4. 13. 23:43
AWS SDK for Java - 2.xx 사용한 방법입니다. 분할 업로드 방식 S3는 단일 개체에 대해 최대 5GB 까지만 업로드가 가능합니다. MultipartUpload를 통해 하나의 파일을 여러 조각으로 나누어 전송이 가능합니다. 100MB 이상의 파일부터 권장합니다. ComplatedPart를 Collection으로 관리하여 5TB까지 part를 저장하여 전송할 수 있도록 합니다. import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.mode..
-
[tibero, oracle] org.hibernate.HibernateException:java 2021. 4. 10. 11:14
org.hibernate.HibernateException identifier of an instance of HibernatedObject altered from A to B 원인 1. hibernate에 연결된 객체를 기존에 store되었는데 pk를 변경해서 한번 더 저장했을 경우 발생합니다. 이러한 이유로 에러가 났다면, tibero 문제라기 보다는 hibernate를 잘못 쓴 문제라고 보는게 맞습니다. procedure를 호출해서 처리를 하던지, flush와 initial을 적절하게 사용해서 해결하는 것이 좋습니다. 원인 2. (tibero, oracle연동시) 원인 2. hibernate 객체 내에서 동일한 hibernate객체를 생성할 경우 발생합니다. @JsonIgnore public Hib..
-
디자인패턴 Delegate pattern 예제java 2021. 4. 4. 21:58
객체 지향 디자인 패턴의 한 종류인 Delegate pattern구현 객체를 위임시키기 위한 Delegator와 같은 interface를 상속받는 클래스들이 필요합니다. - VehiclaManagerService Interface public interface VehicleManagerService{ public String myBehicle(); } - VehiclaManagerService 구현클래스 public class CarManagerServiceImpl implements VehicleManagerService{ @Override public String myBehicle() { // TODO Auto-generated method stub return "Car"; } } public cla..
-
org.hibernate.exception.ConstraintViolationExceptionjava 2021. 4. 1. 00:01
constraint [pk_sys_code]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement, httpStatus=500}] 위 에러는 디비와 매핑되어있는 Entity 객체의 Key가 중복으로 save 될 때 발생할 수 있는 에러입니다. 하지만 기존에 record가 있음에도 불구하고 saveOrUpdate를 할 때에도 발생할 수 있습니다. 아래의 순서는 한 트랜잭션 내에서 수행하는 과정입니다. 1. 기존 객체를 생성(hibernate - save) ( 실제 데이터 저장은 이루이지지 않았습니다. ) 2. 객체를 변경 (pk는 그대로) 3. 객체 저장 (hibernate -..
-
org.hibernate.LazyInitializationExceptionjava 2021. 3. 28. 21:59
System의 하이버네이트를 통해 code를 함께 호출하는 매핑코드입니다. 원인 서버에서 System이 생성된 이후 비동기로 수행할때 처음 생성한 System은 생성된 transaction 내에서 수행했기 때문에 문제가 없지만, 해당 transaction 내에서 mapping되어있는 code를 호출하지 않았다면 매핑된 code는 값이 존재하지 않습니다. 객체는 전달되지만 System 객체의 lazy - true로 되어있는 매핑객체는 이전 세션(transaction)에서 초기화가 되어있지 않았으며, 수행되는 메소드에서는 hibernate transaction을 갖고있지 않기 때문에 no Session 에러를 내보내게 됩니다. org.hibernate.LazyInitializationException: fa..