๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์›น๊ณต๋ทฐ/์Šคํ”„๋ง

[jpa] ์™ธ๋ž˜ํ‚ค๋กœ ์กฐํšŒ, entity ๊ฐ์ฒด๋กœ ์กฐํšŒ

by ์ด๋…ธํ‚ค_ 2021. 7. 16.

1. DatasetDetail ํ…Œ์ด๋ธ” 

dataset_id๋ฅผ ์™ธ๋ž˜ํ‚ค๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์š”์ฒญ ํ…Œ์ด๋ธ”์ž„

2. ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ ์ž˜ ์‹คํ–‰๋˜๋Š”์ง€ ์ฒดํฌ

SELECT * FROM datasetDetail WHERE dataset_id = 59

 

3. repository ํด๋ž˜์Šค์—์„œ ์ฟผ๋ฆฌ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์‹คํŒจํ•จ. 

public List<DatasetDetail> findByDatasetId(Long id)
{
//System.out.println("dataset id : " + dataset.getId());
return em.createQuery("select d from DatasetDetail d where d.dataset = :dataset", DatasetDetail.class) 
.setParameter("dataset", id)
.getResultList();
}

4. ์›์ธ๋ถ„์„

where ์ ˆ ์•ˆ์— d.dataset = :dataset์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ๋•Œ, ์™ธ๋ž˜ํ‚ค์˜ ์•„์ด๋”” ๊ฐ’๋งŒ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ 

d.dataset.id = :dataset์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด์•ผ ์ œ๋Œ€๋กœ ๊ฒ€์ƒ‰์ด ๋จ. 

์ƒ๊ฐํ•ด๋ณด๋ฉด longํ˜•์œผ๋กœ id๋ฅผ ๋„˜๊ฒจ์คฌ๋Š”๋ฐ ์‹ค์ œ ํ…Œ์ด๋ธ”์˜ dataset์ด๋ผ๋Š” ํ•„๋“œ๋Š” entity๊ฐ์ฒด ๊ทธ ์ž์ฒด์ด๋ฏ€๋กœ compare์ž์ฒด๊ฐ€ ์•ˆ๋˜๋Š”๊ฒŒ ๋งž๋Š”๋“ฏ. 

 

์ˆ˜์ •ํ•œ ์ฝ”๋“œ

public List<DatasetDetail> findByDatasetId(Long id)
	{
		//System.out.println("dataset id : " + dataset.getId());
		return em.createQuery("select d from DatasetDetail d where d.dataset.id = :dataset", DatasetDetail.class) 
		.setParameter("dataset", id)
		.getResultList();
	}

 

๋งŒ์•ฝ ๊ฐ์ฒด๋กœ ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ Long id๋ฅผ ๋ฐ›๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ Dataset์ž์ฒด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. 

๊ฐ€๋ น

public List<DatasetDetail> findByDatasetId(Dataset ds)
{
		//System.out.println("dataset id : " + dataset.getId());
		return em.createQuery("select d from DatasetDetail d where d.dataset = :dataset", DatasetDetail.class) 
		.setParameter("dataset", ds)
		.getResultList();
}

์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค. 

 

entity๊ฐ์ฒด ์ž์ฒด๋กœ๋„ ์กฐํšŒ๊ฐ€๋Šฅํ•œ๊ฒƒ์€ ์ข€ ์‹ ๊ธฐํ•˜๋‹ค. 

๋Œ“๊ธ€