별도의 테이블을 통하여 Mapping 정보를 관리한다. table: some_mapping_table column: someMappingId | someEntityId | otherEntityId @Entity @Table(schema = "some", name = "some_entity") public class SomeEntity extends CreatedEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long someEntityId; private String name; @OneToMany(fetch = FetchType.EAGER) @JoinTable(name = "some_mapping_table", joinCo..
1. Embedded를 활용한 복합키 @Entity @Table(name = "some_entity") public class SomeEntity { @EmbeddedId private SomeId id; private String name; } @Embeddable public class SomeId { private Long someNumer; private Long someString; } 2. IdClass를 활용한 복합키 @Entity @IdClass(OtherId.class) @Table(name = "other_entity") public class OtherEntity { @Id private Long otherNumer; @Id private Long otherString; private..
1. 단방향 Mapping: JPA의 가장 기본적인 Entity Mapping @Entity @Table( name="someEntity") public class someEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long someEntityId; private String name; @OneToMany @JoinColumn(name = "someEntityId") private List sourceEntityList; } @Entity @Table(name="sourceEntity") public class SourceEntity { @Id @GeneratedValue(strategy=GenerationType.ID..
Table의 column을 Object로 Mapping할 때 사용한다. table: some_codes column: someCodeId | description | code1 | name1 | code2 | name2 | code3 | name3 @Entity @Table(name = "some_codes") public class SomeCode { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long someCodeId; private String description; @Embedded @AttributeOverrides({ @AttributeOverride(name = "code", column = @Column(name = "cod..

1 Table - 2 Entity 의 경우에 사용한다. 즉 같은 구조를 가지고 있지만, 서로 다른 Entity로 사용해야할 경우 유용하다. 실제 테이블의 구조를 가지고 있는 Child Root Entity에 @DiscriminatorColumn을 추가하여 구분값이 있는 Column을 지정한다. Child Entity는 Child Root Entity에 설정한 Column의 값 중 @DiscriminatorValue에 설정한 값으로 Grouping 된다. 주의점 : 각 엔티티로 Mapping 할 때는 서로 다른 column으로 Join해야 한다. 같은 column으로 Join하려면 아래와 같은 옵션을 추가한다. Parent Entity @OneToOne(mappedBy = "someEntity", casc..

선형회귀란? (linear regression) "데이터를 반복적으로 관찰하면 어떤 패턴으로 회귀한다"는 것을 의미한다. 선형 회귀는 이 패턴이 직선의 모습을 하고 있는데 'y = wx + b'라는 1차 방정식으로 표현된다. 예를 들어, 거리에 따른 택시요금 데이터가 있을때 이를 사용하여 방정식의 w와 b값을 구한다. 그러면 새로운 거리인 x가 주어졌을때 택시요금 y를 추정할 수 있다. 방법 최소제곱법: 유명한 수학자인 가우스가 1795년 발견하였는데 특정 공식을 사용하여 w와 b를 계산한다. 가능한 모든 가중치의 조합을 계산하는 방식은 데이터의 크기가 방대할 경우, 연산 속도가 너무 느려지기 때문에 현실적으로 구현하기에는 어렵다. 하지만 error surface에서 global minimum이 존재한다..
1. Basic JDBC Template public Integer getTotalCount() { return jdbcTemplate.queryForObject("SELECT COUNT(*) FROM EMPLOYEE", Integer.class); } public Integer modifyEmployeeInformation() { return jdbcTemplate.update("INSERT INTO EMPLOYEE VALUES (?, ?, ?, ?)", 5, "Bill", "Gates", "USA"); } 2. Named Parameter JDBC Template - use preparedStatement public SomeDto getSome(Long id) { String query = "SEL..
SonarQube (version : 4.3.2) SonarQube는 코드품질을 체크해주는 프로그램이다. 분기문을 체크하는 브랜치 커버리지 및 버그나 취약점을 체크하는 이슈, 기술 부채, 프로젝트 복잡도 등등 의 정보를 확인할 수 있다. 이밖에도 다양한 라이브러리를 적용하여 품질을 검증할 수 있다. 1. SonarQube 다운로드 및 특정 디렉토리에 압축 해체 2. SonarQube 실행- SonarQube를 실행한다.- console창에서 (SonarQub 압축해제 디렉토리/bin/{{os별 디렉토리}}/sonar.sh start)- 브라우저에서 "http://localhost:9000" 접속 한다.- Main 화면에서 로그인 한다. (계정 : admin / admin) 3. SonarQube 설정- ..
@Enable + Registrar 는 Application 생성 후에 Registarar가 실행되어 Bean을 생성 /등록해서, Application Code에서 @Autowired로 DI할 수 없는 문제점이 있었다. 이 문제를 해결하기 위한 개선된 코드를 추가한다. import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.reflect.ClassPath; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.fact..
- Total
- Today
- Yesterday
- JPA Criteria
- spring spel
- Spring
- SmartLifecycle
- java Equals
- Query DSL
- 복합키 Mapping
- Registrar
- Typesafe Config
- JPA
- Akka
- Property
- Spring Registrar
- @Primary
- Embeddable Mapping
- guava
- Charles proxy
- Embedded Mapping
- Sprint RetryTemplate
- RetryTemplate
- docker
- Discriminate Mapping
- Criteria
- DI
- Spring JDBC Template
- Mapping
- Join Table
- scikit-learn
- java generic
- java EqualsAndHashCode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |