Repository์์ findBy ์์ฑํ๊ณ ,
์ดํ์ List๋ฅผ ํตํด ๊ฐ์ ๋ชจ๋ ๋ถ๋ฌ์ฌ ๋ ๋ชจ๋ ๊ฐ์ด ๋ถ๋ฌ์ ธ์ค๊ฒ ๋๋ค.
ํ์ง๋ง, User์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ฐ์ธ ์ ๋ณด๊ฐ ๊ฐ์ด ๋ถ๋ฌ์ ธ์ค๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ด์
์ด๋ฅผ ๋ฐฉ์งํ๊ณ ์ํ๋ค.
๋ชจ๋ ๊ฐ์ด ๋ถ๋ฌ์ ธ์ค๊ฒ ๋๋ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
@Getter
@Entity
@NoArgsConstructor
@Table(name="user")
public class UserEntity{
@Id
@GeneratedValue
private Long userIdx;
@Column(nullable = false, length = 100)
private String nickName;
@Column(nullable = false, length = 100)
private String userId;
@Column(nullable = false)
private String password;
@ManyToOne
@JoinColumn(name = "employeeId")
private EmployeeEntity employee;
@Builder
public UserEntity(String nickName, String userId, String password) {
this.nickName = nickName;
this.userId = userId;
this.password = password;
}
}
๋ค์๊ณผ ๊ฐ์ด List๋ฅผ userEntity๋ก ๋ถ๋ฌ์ค๊ฒ ๋๋ฉด user์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋๋ ๊ฒ์ด๋ค.
List<UserEntity> findByUserId(String userId)
์ด๋ฌํ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด์๋ ์๋ก์ด interface๋ฅผ ์์ฑํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
public interface protectedUser{
Long getUserIdx();
String getUserId();
String getNickName();
}
List<protectedUser> findByUserId(String userId)
์ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํจ์ ๋ฐ๋ผ user์ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ์ค์ ์ ๋ณด๋ฅผ json์์ ๋ถ๋ฌ์ค์ง ์์ ์ ์๊ฒ ๋๋ค.
- @ManyToOne Join
๊ทธ๋ ๋ค๋ฉด @ManyToOne join ์, ํ์ ์ ๋ณด๋ง ๋ถ๋ฌ์ค๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น? ( -> ์ด๊ฑฐ ์ฐพ๋๋ผ ์ฃฝ๋์ค ์์๋,,)
User์ ManytoOne์ผ๋ก ์ฐ๊ฒฐ๋ Employee Entity๋ฅผ ์์ฑํด๋ณด์.
@Getter
@Entity
@NoArgsConstructor
@Table(name="employee")
public class EmployeeEntity{
@Id
@GeneratedValue
private Long employeeIdx;
@Column(nullable = false, length = 100)
private String name;
@Column(nullable = false, length = 100)
private String employeeId;
@Column(nullable = false)
private String password;
@Column(columnDefinition = "integer default 25")
private Integer age;
@Builder
public EmployeeEntity(String name, String employeeId, String password, Integer age ) {
this.name = name;
this.employeeId = employeeId;
this.password = password;
this.age = age;
}
}
์ด ํ, User๋ฅผ ๋ถ๋ฌ์ฌ ๋ employee์ ํ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ฉด
๋ค์๊ณผ ๊ฐ์ด interface ๋ด๋ถ์ ๋๋ค๋ฅธ interface๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
public interface protectedUser{
Long getUserIdx();
String getUserId();
String getNickName();
EmployeeEntity getEmployee();
interface EmployeeEntity{
Long getEmployeeIdx();
String getEmployeeId();
String getName();
}
//------------------------------------------------------------------------------------------
{
"userIdx":1
"userId":"123"
"nickName":"์์"
"employee"{
"employeeIdx":1
"employeeId":"122"
"name":"์์"
}
}
์ ์ธํฐํ์ด์ค๋ฅผ ํ์ธํด๋ณด๋ฉด, User์ password์ employee์ age, password๋ฅผ ์ ์ธํ
๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ๋๋ค.
์์ฑ ์์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค.
get[entity Column]
get[entity column] ์ฒซ ๊ธ์๋ ๋๋ฌธ์,
๊ทธ ๋ค์์ ๋๋ฌธ์๊ฐ ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ๋ column์ ์ํ๋ฒณ์ด ๋๋ฌธ์์ธ ๊ฒฝ์ฐ์ด๋ค.,.,.,
(ex> employeeIdx ๋ฉด getEmployeeIdx(); ๋ก ์์ฑํ๋ฉด ๋๋ ๊ฒ์ด๋ค.)
- @ManyToOne Join ์ ํ์ ์ ๋ณด๋ฅผ ๊ฐ๋จํ๊ฒ ๋ณด์ฌ์ค ์ ์๋ ๊ฒฝ์ฐ
public interface protectedUser{
Long getUserIdx();
String getUserId();
String getNickName();
String getEmployeeName(); // getEmployee์ Name์ ๊ฐ์ ธ์ด
}
/////////////////////////////////////
{
"userId":"123"
"nickName":"๋๋ค์"
"name":"์์์"
}
์ฒ์์๋ jpa ๊ณต๋ถํ๋ฉด์ ๋ง๋งํ์ง๋ง,,,
์ฌ์ค ์ง๊ธ๋ ๋ง๋งํ์ง๋ง ์ด์ฌํ ์ฐธ์ฌํด์ ์กฐ๊ธ์ฉ ์ค๋ ฅ ๋๋ ค์ผ๊ฒ ๋ค,, ๋๋ญ ์ด๋ ต๋ค,,
์ถ์ฒ] https://gorokke.tistory.com/202