<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Hibernate e Enum"]]></title>
		<link>http://www.guj.com.br/posts/list/6.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Hibernate e Enum"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Hibernate e Enum</title>
				<description><![CDATA[ O problema:<br /> <br /> Vocês podem ver que tenho um atributo do tipo [b]enum[/b] Status [b]{ ATIVO, INATIVO; }[/b], mas o campo da minha tabela somente aceita um caracter CHAR(1).<br /> <br /> Minha tentativa foi redefinindo o metódo toString(), executando no java puro até que funciona, quando o hibernate vai persistir o Enum ele não utiliza o método[b] toString()[/b] e grava { [b]ATIVO[/b] ou [b]INATIVO[/b]} e não { [b]A[/b] ou [b]I[/b] }.<br /> <br /> Alguém já implementou ou resolveu algo como isso!<br /> <br /> Analisem os códigos abaixo:<br /> <br /> [code]<br /> @Entity<br /> @Table(name="PRODUTO")<br /> public class Produto implements Serializable {<br />     . . .<br />     @Enumerated(EnumType.STRING)<br />     @Column(name="STATUS", nullable = false, columnDefinition="CHAR", length=1)<br />     private Status status;<br />     . . .<br />     get e set<br />     . . .<br /> }<br /> [/code]<br /> <br /> [code]public enum Status {<br />     ATIVO("A"), DESATIVO("D");<br /> <br />     private final String value;<br /> <br />     Status(String value) {  <br />         this.value = value;  <br />     }  <br /> <br />     public String value() {  <br />         return this.value;  <br />     } <br /> <br />     public String toString() {<br />         return this.value();<br />     }<br />     <br /> }[/code]<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114567/619444.java</guid>
				<link>http://www.guj.com.br/posts/preList/114567/619444.java</link>
				<pubDate><![CDATA[Fri, 9 Jan 2009 13:16:59]]> GMT</pubDate>
				<author><![CDATA[ leonardocfmg]]></author>
			</item>
			<item>
				<title>Re:Hibernate e Enum</title>
				<description><![CDATA[ Hum, o contrário de "ATIVO" é "INATIVO" e o contrário de "ATIVADO" é "DESATIVADO". <br /> "DESATIVO" é um verbo ("eu desativo uma bomba"), mas acho que o padrão para nomes de enums é um substantivo ou um adjetivo.<br /> <br /> Note que o UserType, dado como exemplo, que persiste enums ( <a class="snap_shots" href="http://www.hibernate.org/265.html" target="_blank" rel="nofollow">http://www.hibernate.org/265.html</a> ) usa o método "name" (que vai retornar "ATIVO" ou "DESATIVO" - argh) e não o método "toString" para persistir enums; talvez seja necessário criar um outro UserType. OK?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114567/619455.java</guid>
				<link>http://www.guj.com.br/posts/preList/114567/619455.java</link>
				<pubDate><![CDATA[Fri, 9 Jan 2009 13:23:42]]> GMT</pubDate>
				<author><![CDATA[ thingol]]></author>
			</item>
			<item>
				<title>Re:Hibernate e Enum</title>
				<description><![CDATA[ [quote=thingol]Hum, o contrário de "ATIVO" é "INATIVO" e o contrário de "ATIVADO" é "DESATIVADO". <br /> "DESATIVO" é um verbo ("eu desativo uma bomba"), mas acho que o padrão para nomes de enums é um substantivo ou um adjetivo.<br /> <br /> Note que o UserType, dado como exemplo, que persiste enums ( <a class="snap_shots" href="http://www.hibernate.org/265.html" target="_blank" rel="nofollow">http://www.hibernate.org/265.html</a> ) usa o método "name" (que vai retornar "ATIVO" ou "DESATIVO" - argh) e não o método "toString" para persistir enums; talvez seja necessário criar um outro UserType. OK?[/quote]<br /> <br /> <br /> <br /> Examinei o código do link, mas [b]não funcionou[/b], como o método [b]name()[/b] é [b]final[/b], aí que está o problema, não consigo redefini-lo!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114567/619606.java</guid>
				<link>http://www.guj.com.br/posts/preList/114567/619606.java</link>
				<pubDate><![CDATA[Fri, 9 Jan 2009 15:13:47]]> GMT</pubDate>
				<author><![CDATA[ leonardocfmg]]></author>
			</item>
			<item>
				<title>Re:Hibernate e Enum</title>
				<description><![CDATA[ O método "name" é final e não pode ser redefinido, então você teria de ter um outro UserType, cujo código é o mesmo exceto pelo fato de você ter de trocar "name" por "toString". ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114567/619620.java</guid>
				<link>http://www.guj.com.br/posts/preList/114567/619620.java</link>
				<pubDate><![CDATA[Fri, 9 Jan 2009 15:27:35]]> GMT</pubDate>
				<author><![CDATA[ thingol]]></author>
			</item>
			<item>
				<title>Re:Hibernate e Enum</title>
				<description><![CDATA[ Oi Leonardo!<br /> <br /> Já resolveu seu problema com user type?<br /> Se não me passa outro post acho que tenho uma solução pra você.<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/posts/preList/114567/1005023.java</guid>
				<link>http://www.guj.com.br/posts/preList/114567/1005023.java</link>
				<pubDate><![CDATA[Wed, 3 Mar 2010 08:45:44]]> GMT</pubDate>
				<author><![CDATA[ DSergio]]></author>
			</item>
	</channel>
</rss>