2015-10-16 45 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