我有一個彈簧本體與javax.validation.constraintsNOTNULL不工作,縱欄(可爲空= FALSE)工作
@Entity
public abstract class IdentifiableNamedEntity {
@NotNull
@Column(unique = true)
private String name;
}
與@NotNull註釋字段的問題是,如果設置爲空值名稱字段,它被存儲在數據庫中。不過,如果我更改類如下,它提出的例外,我希望收到:
@Entity
public abstract class IdentifiableNamedEntity {
@Column(unique = true, nullable=false)
private String name;
}
有沒有方法可以讓我避免指定爲空的=假,但得到@NotNull表現,因爲我想?除了依賴標準Java註釋的nullable = false之外,還有其他替代方法嗎?一些Hibernate配置?
這是我的Spring配置:
的ApplicationContext
<beans ...>
<context:property-placeholder location="classpath*:spring/database.properties" />
<context:component-scan base-package="com.lh.clte" />
<import resource="classpath:spring/applicationContext-persistence.xml" />
</beans>
的applicationContext的持久性
<beans ...>
<import resource="classpath:spring/applicationContext-jpa.xml" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${database.driverClassName}" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.username}" />
<property name="password" value="${database.password}" />
<property name="initialSize" value="3" />
<property name="maxActive" value="10" />
</bean>
<tx:annotation-driven mode="proxy"
transaction-manager="transactionManager" />
<bean class="org.springframework.orm.jpa.JpaTransactionManager"
id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
的applicationContext-JPA
<beans ...>
<jpa:repositories base-package="com.lh.clte.repository" />
</beans>
由於我使用的存儲庫,我也報corrisponding 實體庫:
@Repository
public interface IdentifiableNamedEntityRepository extends JpaSpecificationExecutor<IdentifiableNamedEntity>, JpaRepository<IdentifiableNamedEntity, Long> {
}
是的,據我所知,但我也希望Hibernate使用該java驗證級別信息來派生該字段不應該在數據庫中爲空。至少,即使這不是默認行爲,我希望這是可配置的。 – Manu
您是否擁有所有必需的庫,以便正確使用Hibernate驗證器。 http://hibernate.org/validator/documentation/getting-started/ –
不,這是錯誤的:我添加了hibernate-validator,版本4.2.0.Final,它工作。謝謝 – Manu