Fiz as alterações para persistir como Date no banco ao invés de String. Segui o material fazendo a seguinte alteração
<h:inputText id="dataLancamento" value="#{livroBean.livro.dataLancamento.time}">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
</h:inputText>
No entanto agora dá o seguinte erro:
javax.servlet.ServletException: javax.el.PropertyNotFoundException: /livro.xhtml @37,54 value="#{livroBean.livro.dataLancamento.time}": Target Unreachable, 'dataLancamento' returned null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Imagino que isso seja ocasionado porque não há nada em dataLancamento fazendo com que cause o erro, para tentar contornar, retirei o .time, deixando o código desta forma:
<h:inputText id="dataLancamento" value="#{livroBean.livro.dataLancamento}">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
</h:inputText>
Só que agora está apresentando outro erro, ao passar a data 12/12/2010:
javax.servlet.ServletException: javax.el.ELException: /livro.xhtml @37,49 value="#{livroBean.livro.dataLancamento}": Cannot convert 11/12/10 23:00 of type class java.util.Date to class java.util.Calendar
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Tentei usar também o , mas não mudou o resultado.
Desde já, obrigado!