'null Converter' 的 selectOneMenu 转换错误设置值

selectOneMenu Conversion Error setting value for 'null Converter'

我有两个处于关系中的实体:

// Produkt
@ManyToOne
private Hersteller hersteller;

// Hersteller
@OneToMany(targetEntity = Produkt.class)
private List<Produkt> produkte;

我有一个 jsf 表单来编辑 Produkt 实体(还可以正常工作)。 现在我想更改“Produkt”的“Hersteller”。

<h:selectOneMenu styleClass="form-control" id="hersteller" value="#adminProduktMgmtHandler.produkt.hersteller}">
          <f:selectItems value="#{adminProduktMgmtHandler.hersteller}" var="hersteller" itemLabel="#{hersteller.name}" itemValue="#{hersteller}" />
</h:selectOneMenu>

输出是正确的,但是当我提交它时出现以下错误:

Conversion Error setting value for 'null Converter'

生成的html:

<select id="kunden-form-register:hersteller" name="kunden-form-register:hersteller" class="form-control" size="1">  <option value="de.hsb.app.gws.model.Hersteller@2169a647">Coca Cola</option>
    <option value="de.hsb.app.gws.model.Hersteller@3d9db94c">PepsiCo</option>
</select>

我是 jee/jsf 的新手,但据我所知,它应该可以通过正确传递对象来工作,对吗?我不必使用 id 和 itemValue 来设置它吗?

解决方法: 好的,只需将 id 设置为 itemValue...

<h:selectOneMenu styleClass="form-control" id="hersteller" value="#{adminProduktMgmtHandler.produkt.hersteller.id}">
    <f:selectItems value="#{adminProduktMgmtHandler.hersteller}" var="hersteller" itemLabel="#{hersteller.name}" itemValue="#{hersteller.id}" />
</h:selectOneMenu>