コードは次のようになります。
センサークラス:
@Entity
@Table(name = "sensor")
public class Sensor {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne
private SensorType sensorType;
@NotEmpty
@Size(min = 3, max = 255)
@Column(name = "name")
private String name;
......
}
センサータイプ:
@Entity
@Table(name = "sensortype")
public class SensorType {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "type")
private String type;
......
}
新しいセンサーを挿入しようとすると、エラーが発生します。SensorType は null です。これは、JSP から SensorController に SensorType "id" のみを送信しており、コントローラーが SensorType オブジェクトを想定しているためです。
センサーコントローラー:
@Controller
public class SensorController {
@Autowired
private ISensor sensorService;
@RequestMapping(value = "/sensor/add", method = RequestMethod.POST)
public String add(Sensor sensor, BindingResult result, Model model) {
if (result.hasErrors()) {
return "sensorAdd";
}
sensorService.insert(sensor);
return "redirect:/sensors";
}
}
どうすればこれを解決できますか?