2015-10-16 47 views
0

我正在增强,以创建一个新表,并参考该ID作为新列在现有的表B休眠ConstraintValidation同时运行JUnit

我省略了整个实体类简洁。

import javax.validation.constraints.NotNull; 
import org.apache.bval.constraints.NotEmpty;  
public class TableB implements Serializable { 
    -- 
    @NotNull 
     @NotEmpty 
     @Column(name = "ContactReasonID") 
     private Integer contactReasonID; 
    --- 
    } 

我的JUnit测试方法是下面列出

@Test 
public void testUpdateInteraction(){ 
    try { 
     interactionService.updateTableB(228, 2, 2642, "test"); 
     assertTrue(true); 
    } catch (Exception e) { 
     assertTrue(false); 
    }  
} 

为updateTableB的参数都指的是老列。 但是当我运行测试情况下,我得到一个ConstraintViolationException如下图所示

[ConstraintViolationImpl{[email protected], propertyPath='contactReasonID', message='may not be null', [email protected], value=null}] 

但contactReasonID是空列。我感到困惑的是约束在哪里。

环境的详细信息:

<spring-framework.version>3.1.2.RELEASE</spring-framework.version>     <spring-data-jpa>1.4.4.RELEASE</spring-data-jpa> 
    <hibernate-framework.version>4.0.1.Final</hibernate-framework.version> 

任何指针或指导,将有很大的帮助。

回答

2

您已使用@NotNull约束。尝试删除。

+0

哇这么明显我错过了。总是很好,有一双额外的眼睛。谢谢@Ish – ashwin