estou com uma aplicação utilizado o primefaces jsf e jpa recebendo o seguinte erro: Hibernate:
insert
into
linha
(descricao, id_familia, version)
values
(?, ?, ?)
2017-05-02 15:17:53,726 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] SQL Error: 1048, SQLState: 23000
2017-05-02 15:17:53,726 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] Column ‘id_familia’ cannot be null
o codigo do xhtml é o seguinte :
<ui:composition template="/templates/master.xhtml">
<ui:define name="divMain">
<f:metadata>
<o:viewParam name="linha" value="#{cadastroLinhasBean.linha}" />
<f:event listener="#{cadastroLinhasBean.inicializar}"
type="preRenderView" />
</f:metadata>
<h:form id="frmCadastro">
<h1>#{cadastroLinhasBean.editando ? msg.editar_linha :
msg.cadastrar_linha}</h1>
<p:outputLabel value="#{msg.campo_obrigatorio}"
style="color:red;margin-left:100px;" />
<p:separator></p:separator>
<p:focus context="frmCadastro" />
<p:toolbar>
<p:toolbarGroup>
<p:button value="#{msg.novo}" icon="ui-icon-plusthick"
styleClass="botao-novo" outcome="/previsao/linhas/CadastroLinha" />
<p:commandButton value="#{msg.salvar}" icon="ui-icon-disk"
styleClass="botao-salvar"
action="#{cadastroLinhasBean.salvar}" update="@form" />
</p:toolbarGroup>
<p:toolbarGroup align="right">
<p:button value="Pesquisa de Linhas" icon="ui-icon-search"
styleClass="botao-pesquisa"
outcome="/previsao/linhas/PesquisaLinha">
<f:param name="linha" value="#{linha.codigo}" />
</p:button>
</p:toolbarGroup>
</p:toolbar>
<p:panelGrid columns="2" styleClass="semBorda"
columnClasses="rotulo, campo">
<p:outputLabel value="#{msg.linha} : *" for="linha" />
<p:inputText id="linha" size="100" maxlength="100"
style="text-transform: uppercase"
value="#{cadastroLinhasBean.linha.descricao}" />
<p:outputLabel value="familia : *" for="familia" />
<p:selectOneMenu id="familia"
value="#{cadastroLinhasBean.familia}">
<f:selectItem itemLabel="-- Selecione uma Família -- " />
<f:selectItems value="#{cadastroLinhasBean.familiasRaizes}"
var="familia" itemValue="#{familia}" itemLabel="#{familia.descricao}" />
</p:selectOneMenu>
</p:panelGrid>
</h:form>
o bean segue :
@Named
@ViewScoped
public class CadastroLinhasBean implements Serializable {
private static final long serialVersionUID = 1L;
private Linha linha;
private Familia familia;
@Inject
private Familias familias;
private Linha linhaSelecionada;
private List<Familia> familiasRaizes;
@Inject
private CadastroLinhaService cadastroLinhaService;
public CadastroLinhasBean() {
limpar();
}
private void limpar() {
linha = new Linha();
familia = new Familia();
familiasRaizes = new ArrayList<Familia>();
}
public void salvar() {
try {
cadastroLinhaService.salvar(this.linha);
limpar();
FacesUtil.addInfoMessage("Linha " + FacesUtil.getMensagemI18n("salvo"));
} catch (Exception e) {
FacesUtil.addErrorMessage(e.getMessage());
}
}
public void inicializar() {
if (FacesUtil.isNotPostback()) {
familiasRaizes = familias.carregaFamilia();
}
}
public boolean isEditando() {
return this.linha.getCodigo() != null;
}
public Linha getLinha() {
return linha;
}
public void setLinha(Linha linha) {
this.linha = linha;
if (this.linha != null) {
this.familia = this.linha.getFamilia(); // isto é usado para
// ao editar
// carregar as
// empresas na tela
// de cadastro
}
}
public Linha getLinhaSelecionada() {
return linhaSelecionada;
}
public void setLinhaSelecionada(Linha linhaSelecionada) {
this.linhaSelecionada = linhaSelecionada;
}
public List<Familia> getFamiliasRaizes() {
return familiasRaizes;
}
@NotNull
public Familia getFamilia() {
return familia;
}
public void setFamilia(Familia familia) {
this.familia = familia;
}
}
Segue a tela que vem preenchida com a lista de familias que o id da nulo.
Alguma sugestão para ver onde está o erro?