Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Swing
- Java
- 계산기
- Eclipse
- 계산기GUI
- annotation
- Spring
- MVC
- 알고리즘
- GUI
- 오름차순정렬
- 이클립스
- 자바알고리즘
- 이클립스 #이클립스단축키 #자바 #자바단축키
- 내림차순정렬
- 배열정렬
- 숫자정렬
- 버블정렬
- 어노테이션
- 자바 계산기
- 스프링
- 자바GUI
- 버블소트
- 자바
- 자바 #java #이클립스 #eclipse #switch #switch문 #사칙연산 #계산기 #calculator #간단한계산기
Archives
- Today
- Total
온 코딩
[게시판] 게시판 관련 ENTITY, 기본 프로젝트 구조 본문
1. ERD
2. 프로젝트 구조
3. ENTITY 클래스
User.java
package com.finalproject.ildoduk.entity.user;
import lombok.*;
import org.hibernate.annotations.*;
import javax.persistence.*;
import javax.persistence.Entity;
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@ToString
public class User {
@Id
private String id;
private char isHelper;
}
AuctionList.java
package com.finalproject.ildoduk.entity.action;
import com.finalproject.ildoduk.entity.user.*;
import lombok.*;
import org.hibernate.annotations.*;
import org.springframework.data.annotation.*;
import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.sql.*;
import java.time.*;
@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString(exclude = "address") //스택 오버플로 방지
@DynamicInsert
public class AuctionList {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long aucSeq;
@OneToOne(mappedBy = "aucSeq") //Address 테이블과 1:1 관계
private Address address;
@ManyToOne(fetch = FetchType.LAZY) //성능향상을 위해 지연로딩, 필요할 때만 아우터조인 사용
private User id;
@Column(nullable = false)
private int category;
private LocalDateTime doDateTime;
@Column(length = 30,nullable = false)
private String predictHour;
@Column(nullable = false)
private int level;
@Column(nullable = false)
private int startPrice;
@Column(nullable = false)
private int auctionGap;
@Column(length = 1000,nullable = false)
private String title;
@Column(length = 3000,nullable = false)
private String content;
@CreatedDate
private LocalDateTime regDate;
@ColumnDefault(value = "0")
private int driverLicense;
@ColumnDefault(value = "0")
private int gender;
@ColumnDefault(value = "0")
private int age;
@ColumnDefault(value = "0")
private int state;
}
Address.java
package com.finalproject.ildoduk.entity.action;
import lombok.*;
import org.hibernate.annotations.*;
import javax.persistence.*;
import javax.persistence.Entity;
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@ToString(exclude = "aucSeq")
@DynamicInsert
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long addSeq;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn
private AuctionList aucSeq;
@Column(length = 300,nullable = false)
private String address;
@Column(length = 30,nullable = false)
private String sido;
@Column(length = 30,nullable = false)
private String sigungu;
}
BiddingList.java
package com.finalproject.ildoduk.entity.action;
import com.finalproject.ildoduk.entity.user.*;
import lombok.*;
import org.hibernate.annotations.*;
import javax.persistence.*;
import javax.persistence.Entity;
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@ToString(exclude = {"aucSeq","id"})
@DynamicInsert
public class BiddingList {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long bidSeq;
@ManyToOne(fetch = FetchType.LAZY)
private AuctionList aucSeq;
@ManyToOne(fetch = FetchType.LAZY)
private User id;
@Column(nullable = false)
private int offerPrice;
@ColumnDefault(value="0")
private int chosen;
}
FK 처리 힘들었다..
우선 다 LAZY LOADING처리 해놓고 나중에 필요에 따라 EAGAR로 바꿀 예정
Lazy Loading 단점 : 필요한 순간에 쿼리를 실행하기 때문에 연관관계가 복잡할 경우 여러번의 쿼리가 실행 됨
작성 시 주의점
@ToString 어노테이션의 경우, 모든 항목을 다 출력하기 때문에 관계가 있는 테이블의 경우 ToString 때문에 스택오버플로가 발생할 수 있다 (특히 1:1 대응에서 서로 호출할 경우...!)
=> @ToString(exclude="") 하기! 보통 설정함
'FINAL PROJECT' 카테고리의 다른 글
[게시판] 필요한 입출력 메소드 만들기 (0) | 2021.07.21 |
---|---|
[게시판] JQuery로 타이머 만들기 - (0) | 2021.07.18 |
[게시판] Repository - 테이블 조인으로 함께 출력해야 할 값 설정 (0) | 2021.07.16 |
[게시판] 유저전용게시판, 헬퍼전용게시판 (0) | 2021.07.15 |
[경매 기반 심부름 웹 애플리케이션] 20210706 회의록 1 (0) | 2021.07.06 |
Comments