
public class Bus {
@Id
@Column(name="bus_num", length=50) // varchar(50) pk
private String busNum;
@Column(name="bus_root", length=50) // varchar(50)
private String busRoot;
}
public class Gps {
@Column(name = "bus_num", length = 50)
private String busNum;
@Column(name = "lan")
private Character lan;
@Column(name = "lng")
private Character lng;
@Id
@Column(name="time")
private LocalDateTime time;
}
@Table(name = "sensor") // 테이블명.. sensor
public class Sensor {
@Column(name = "bus_num", length = 50)
private String busNum;
@Column(name = "count")
private Integer count;
@Column(name = "status")
private Byte status;
@Id
@Column(name="time")
private LocalDateTime time;
}
@Repository
public interface BusRepo extends JpaRepository<Bus, Integer>{
}
public interface GpsRepository extends JpaRepository<Gps, LocalDateTime> {
Optional<Sensor> findTopByBusNumOrderByTimeDesc(LocalDateTime time);
}
public interface SensorRepository extends JpaRepository<Sensor, LocalDateTime> {
Optional<Sensor> findTopByBusNumOrderByTimeDesc(LocalDateTime time);
}
@Service
public class InsertService {
@Autowired
private SensorRepository sensorRepository;
private GpsRepository gpsRepository;
private BusRepo busRepo;
public void addSensor(String busNum, int count, Byte status, LocalDateTime time) {
// 도착했는지 판별 후에..
Sensor sensor = new Sensor();
sensor.setBusNum(busNum); // ex
sensor.setCount(count);
sensor.setStatus(status != null ? status : (byte)1);
sensor.setTime(time != null ? time : LocalDateTime.now());
//sensorRepository.save(sensor);
}
}
오늘 요약
- 스키마 변경 (하나의 테이블 > 세 개의 테이블로)
- 변경된 스키마에 맞춰 엔티티 추가 및 수정 (하나의 엔티티 > 세 개의 엔티티 파일)
- 변경된 엔티티에 따른 리포지토리 추가 및 수정 (위와 같음)
- 데이터 insert를 위한 서비스 작성 (덜 완성됨)
앞으로 해야 할 일
- 조건(도착 유무)에 따른 데이터 입력 확인 (test: 코드 작성 위치로..) [InsertService.java]
- 조건.. 도착 유무 코드도 수정해야 한다 정확한지 테스트도 필요한데 현재로서는 못 하고 있는 중.. 날 잡고 해야 하는디
- count 저장 타이밍을 생각해야 함