Annotation do Hibernate para default booleano

Olá pessoal,

estou fazendo uma aplicação web e o campo checkbox quando não marcado é salvo em branco em sua respectiva coluna de tabela no banco de dados.
Estou usando Postgresql 8.3 e Hibernate.

Seguindo a documentação de Annotations do Hibernate coloquei a seguinte anotação em minha classe de negócio:

@Column(columnDefinition = "boolean default false") private Boolean aceitaPagamento;
e depois

@Column(nullable = false, columnDefinition = "boolean default false") private Boolean aceitaPagamento;

mas não funcionaram; continua o mesmo, ou seja, fica em branco no banco de dados.

Peço ajuda a quem souber,

Muito obrigado

experimente:

@Column(name = "nome da coluna", columnDefinition="BINARY(0)") private Boolean aceitaPagamento;

ou

@Column(name = "nome da coluna") private Boolean aceitaPagamento = false;

ou uma variação das duas :wink:

Essa segunda opção não eh uma boa, pois na hora de consultar por um objeto ele vai incluir a restrição “where aceitaPpagamento is null”. Utiliza na definição do bean entityManagerFactory a prop hibernate.query.substitutions:

<bean id="entityManagerFactory"
	class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
	<property name="persistenceXmlLocation" value="classpath:br/com/teste/dao/jpa/persistence.xml"/>
	<property name="jpaVendorAdapter">
		<bean
			class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
			<property name="showSql" value="true" />					
			<property name="databasePlatform" value="org.hibernate.dialect.Oracle9Dialect"/>		
		</bean>
	</property>
	<property name="jpaProperties">
	   <props>
	     <prop key="hibernate.query.substitutions">true '1', false '0'</prop>
	   </props>
	</property>
</bean>

Bom pessoal, depois de quebrar a cabeça quase meio dia… achei a solucao para Annotation do Hibernate na inserção de valores Default.

@Column(name = “DELETE_FLAG”, columnDefinition = “NUMBER(2) default 0”, insertable = false, updatable = true)
private Long deleteFlag ;

A grande mágica esta no: “insertable = false” pq ele nao ira passar esse atributo para o INSERT, logo o BD coloca o valor default:NUMBER(2) default 0"

depois o parametro: “updatable = true” é para poder mudar o valor do Delete_flag para “1” no futuro, caso necessario.

Espero ter ajudado

Caro belatra, estou com o mesmo problema que voce, segue o mapeamento da minha coluna, por favor verifica se tem algum erro, já estou tentando a um tempo

@Column(name = "Juros_Mesais", precision = 10, scale = 2, columnDefinition="default 0", insertable=false, updatable=true)
    private BigDecimal jurosMesais;