Pegar uma lista, atribuir e salvar

Tenho uma lista “professor” e outra “materia”, já tentei de tudo, mas não foi quero colocar o nome no professor, selecionar a matéria que ele leciona e salvar.

Na classe professor:

@OneToMany(mappedBy="professor")
private List<Materia> materias;

na classe materia:

@ManyToOne
@JoinColumn(name="professor_id")
private Professor professor;

no controller

@RequestMapping(method = RequestMethod.POST)
public ModelAndView salvar(Professor professor) {
	List<Materia> todasMaterias = materias.findAll();
	ModelAndView mv = new ModelAndView("/Professor");
	mv.addObject("materias", todasMaterias);
	professores.save(professor);

ja usei no controle também com o attribute, mas nada funfou, estou usando so a opção de cima no momento.

@ModelAttribute("todasMaterias")
public List<Materia> todasMaterias() {
	return materias.findAll();
}

e o html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:th="http://www.thymeleaf.org"
	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
	layout:decorator="comum/LayoutPadrao">

<head>
<title>Test</title>
</head>

<section layout:fragment="conteudo01">
	<form class="form-horizontal" 
	method="POST" 
	action="/professores/novo"
	th:object="${professor}">

		<div class="panel panel-primary">


			<div class="panel-heading">
				<div class="cleanfix">
					<h1 class="panel-title">testes de professor</h1>

				</div>
			</div>

			<div class="panel-body">

				<div class="form-group">
					<label for="matricula" class="col-sm-1 control-label">Matricula
					</label>
					<div class="col-sm-2">
						<input type="text" class="form-control" id="matricula"
							name="matricula" />
					</div>
				</div>

				<div class="form-group">
					<label for="nome" class="col-sm-1 control-label">Nome: </label>
					<div class="col-sm-2">
						<input type="text" class="form-control" id="pessoa.nome"
							name="pessoa.nome" />
					</div>
				</div>

				<div class="form-group">
					<label for="status" class="col-sm-2 control-label">Materias</label>

					<div class="col-sm-2">
						
						
						<select id="materia" class="from-control" th:field="*{materia}">
						<option th:each="materia : ${materias}" th:text="#{materia}" th:value="${materia}"></option> 
						</select>
						
					</div>
				</div>
				</div>

				<div class="form-group">
					<div class="col-sm-offset-2 col-sm-10">
						<button type="submit" class="btn btn-primary">Salvar</button>
					</div>
				</div>
			</div>
	</form>
</section>
</html>