package com.nurkiewicz.jdbcrepository.repositories; import com.nurkiewicz.jdbcrepository.JdbcRepository; import com.nurkiewicz.jdbcrepository.RowUnmapper; import com.nurkiewicz.jdbcrepository.TableDescription; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; /** * @author Tomasz Nurkiewicz * @since 1/20/13, 10:09 AM */ public class BoardingPassRepository extends JdbcRepository<BoardingPass, Object[]> { public BoardingPassRepository() { this("BOARDING_PASS"); } public BoardingPassRepository(String tableName) { super(MAPPER, UNMAPPER, new TableDescription(tableName, null, "flight_no", "seq_no") ); } @Override protected <S extends BoardingPass> S postCreate(S entity, Number generatedId) { entity.withPersisted(true); return entity; } public static final RowMapper<BoardingPass> MAPPER = new RowMapper<BoardingPass>() { @Override public BoardingPass mapRow(ResultSet rs, int rowNum) throws SQLException { final BoardingPass boardingPass = new BoardingPass(); boardingPass.setFlightNo(rs.getString("flight_no")); boardingPass.setSeqNo(rs.getInt("seq_no")); boardingPass.setPassenger(rs.getString("passenger")); boardingPass.setSeat(rs.getString("seat")); return boardingPass.withPersisted(true); } }; public static final RowUnmapper<BoardingPass> UNMAPPER = new RowUnmapper<BoardingPass>() { @Override public Map<String, Object> mapColumns(BoardingPass boardingPass) { final HashMap<String, Object> map = new HashMap<String, Object>(); map.put("flight_no", boardingPass.getFlightNo()); map.put("seq_no", boardingPass.getSeqNo()); map.put("passenger", boardingPass.getPassenger()); map.put("seat", boardingPass.getSeat()); return map; } }; }