개살토끼
40
2020-05-13 18:52:47
0
109

Springboot 에서 hibernate 복합키 조회 어떻게 하나요?


mariaDB를 사용중이고 Zzim라는 테이블에 복합키로 prdlstreportno, id 두개를 기본키로 주었습니다. 그 외의 컬럼은 없고요.

하이버네이트에서 where zzim.prdlstreportno =? and zzim.id =?; 이렇게 조회하고싶은데 어떻게 조회를 하면 좋을까요.

복합키 설정을 위해서 @EmbeddedId  어노테이션을 이용했습니다.

Zzim 클래스입니다

    @Getter

@Setter
@Data
@Entity
public class Zzim {
@EmbeddedId
private ZzimId zzimId;
}

ZzimId클래스입니다.

@Data
@Embeddable
public class ZzimId implements Serializable {
@Column(name="prdlstreportno")
private String prdlstreportno;
@Column(name="id")
private int id;
}

현재 작성한 ZzimRepository 인터페이스입니다.

public interface ZzimRepository extends JpaRepository<Zzim, String> {
//Zzim findByPrdlstreportnoAndId(String prdlstreportno,int id);
}

ZzimService 클래스입니다.

@Service
public class ZzimService {
@Autowired
ZzimRepository zzimRepository;

public Zzim saveZzim(Zzim zzim){
return zzimRepository.save(zzim);
}

public List<Zzim> getAllZzim(){
return zzimRepository.findAll();
}
/*public ZzimId getZzim(String prdlstreportno, int id){
return zzimRepository.findByPrdlstreportnoAndId(prdlstreportno,id);
}*/
}

ZzimController부분입니다.


@RestController
public class ZzimController {

@Autowired
ZzimService zzimService;

@RequestMapping(value="/zzim",method = RequestMethod.POST)
public ResponseEntity<Void> createZzim(@RequestBody ZzimId zzimId, UriComponentsBuilder ucBuilder){
ZzimId zzimId1 = new ZzimId();
zzimId1.setPrdlstreportno(zzimId.getPrdlstreportno());
zzimId1.setId(zzimId.getId());

Zzim zzim = new Zzim();
zzim.setZzimId(zzimId);


zzimService.saveZzim(zzim);

return new ResponseEntity<Void>(HttpStatus.OK);
}
@RequestMapping(value="/getAllZzim",method = RequestMethod.GET)
public ResponseEntity<Void> createZzim( UriComponentsBuilder ucBuilder){
List<Zzim> zzim = zzimService.getAllZzim();
System.out.println(zzim.toString());
return new ResponseEntity<Void>(HttpStatus.OK);
}
}

원하는 키가 존재하는지 조회하는 법을 잘 모르겠습니다.

선배님들 도움 주시면 감사합니다.






;

0
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.