2017-03-12 5 views
0

1対多を使用して2つのpojoクラスをマップする必要がありますが、以下のエラーが発生します com.mysql.jdbc.MysqlDataTruncation:データ切り捨て:行1hibernate-spring intregationで1対多のマッピングでエラーが発生しました

When I saw the table created by hibernate, I found that a column with data type blob is created 

I am adding the code below. Please help me out 

@Entity 
@Table(name="TEST_CASE_DESC") 
public class TestCaseForm implements Serializable{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 100L; 
    @Id 
    @Column(name="TEST_CASE_ID") 
    private String testCaseId; 
    @Column(name="PROJECT_NAME") 
    private String projectName; 
    @Column(name="PROJECT_ID") 
    private String projectId; 
    @Column(name="RELEASE_NAME") 
    private String releaseName; 
    @Column(name="RELEASE_ID") 
    private String releaseId; 
    @Column(name="ITERATION") 
    private String iteration; 
    @Column(name="TITLE") 
    private String title; 
    @Column(name="CREATED_BY") 
    private String createdBy; 
    @Column(name="CREATION_DATE") 
    private Date creationDate; 
    @Column(name="DESCRIPTION") 
    private String description; 
    @Column(name="PRE_CONDITION") 
    private String preCondition; 
    @Column(name="POST_CONDITION") 
    private String postCondition; 
    @Column(name="TYPE") 
    private String type; 
    @Column(name="IMPORTANCE") 
    private String importance; 


    private ArrayList<TestCaseStepsForm> testCaseStepsform = new ArrayList<TestCaseStepsForm>(); 

    public String getProjectId() { 
     return projectId; 
    } 
    public void setProjectId(String projectId) { 
     this.projectId = projectId; 
    } 
    public String getTitle() { 
     return title; 
    } 
    public void setTitle(String title) { 
     this.title = title; 
    } 
    public String getCreatedBy() { 
     return createdBy; 
    } 
    public void setCreatedBy(String createdBy) { 
     this.createdBy = createdBy; 
    } 
    public Date getCreationDate() { 
     return creationDate; 
    } 
    public void setCreationDate(Date creationDate) { 
     this.creationDate = creationDate; 
    } 
    public String getDescription() { 
     return description; 
    } 
    public void setDescription(String description) { 
     this.description = description; 
    } 
    public String getPreCondition() { 
     return preCondition; 
    } 
    public void setPreCondition(String preCondition) { 
     this.preCondition = preCondition; 
    } 
    public String getPostCondition() { 
     return postCondition; 
    } 
    public void setPostCondition(String postCondition) { 
     this.postCondition = postCondition; 
    } 
    public String getProjectName() { 
     return projectName; 
    } 
    public void setProjectName(String projectName) { 
     this.projectName = projectName; 
    } 
    public String getRelease() { 
     return releaseName; 
    } 
    public void setReleaseName(String releaseName) { 
     this.releaseName = releaseName; 
    } 
    public String getReleaseId() { 
     return releaseId; 
    } 
    public void setReleaseId(String releaseId) { 
     this.releaseId = releaseId; 
    } 
    public String getIteration() { 
     return iteration; 
    } 
    public void setIteration(String iteration) { 
     this.iteration = iteration; 
    } 
    public String getType() { 
     return type; 
    } 
    public void setType(String type) { 
     this.type = type; 
    } 
    public String getReleaseName() { 
     return releaseName; 
    } 
    public String getImportance() { 
     return importance; 
    } 
    public void setImportance(String importance) { 
     this.importance = importance; 
    } 
    @OneToMany(mappedBy = "TEST_CASE_DESC", cascade = CascadeType.ALL) 
    public ArrayList<TestCaseStepsForm> getTestCaseStepsform() { 
     return testCaseStepsform; 
    } 

    public void setTestCaseStepsform(ArrayList<TestCaseStepsForm> testCaseStepsform) { 
     this.testCaseStepsform = testCaseStepsform; 
    } 
    public String getTestCaseId() { 
     return testCaseId; 
    } 
    public void setTestCaseId(String testCaseId) { 
     this.testCaseId = testCaseId; 
    } 


} 


@Entity 
@Table(name="TEST_CASE_STEP") 
public class TestCaseStepsForm implements Serializable{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 123456788091L; 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name="SERIAL_NUMBER") 
    private String serialNumber; 
    @Column(name="TEST_CASE_ID") 
    private String testCaseId; 
    @Column(name="INPUT") 
    private String input; 
    @Column(name="EXPCETED_OUTPUT") 
    private String expectedOutput; 
    @Column(name="STATUS") 
    private String status; 

    private TestCaseForm testCaseForm; 

    public String getTestCaseId() { 
     return testCaseId; 
    } 
    public void setTestCaseId(String testCaseId) { 
     this.testCaseId = testCaseId; 
    } 
    public String getInput() { 
     return input; 
    } 
    public void setInput(String input) { 
     this.input = input; 
    } 
    public String getExpectedOutput() { 
     return expectedOutput; 
    } 
    public void setExpectedOutput(String expectedOutput) { 
     this.expectedOutput = expectedOutput; 
    } 
    public String getStatus() { 
     return status; 
    } 
    public void setStatus(String status) { 
     this.status = status; 
    } 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "TEST_CASE_ID", nullable = false) 
    public TestCaseForm getTestCaseForm() { 
     return testCaseForm; 
    } 
    public void setTestCaseForm(TestCaseForm testCaseForm) { 
     this.testCaseForm = testCaseForm; 
    } 
    public String getSerialNumber() { 
     return serialNumber; 
    } 
    public void setSerialNumber(String serialNumber) { 
     this.serialNumber = serialNumber; 
    } 

} 

@Configuration パブリッククラスTestCaseConfig {

@Bean(name="testCaseForm1") 
public TestCaseForm testCaseForm1(){ 

    TestCaseForm tst = new TestCaseForm(); 
    tst.setTestCaseId("1122233"); 
    tst.setProjectId("1234"); 
    tst.setReleaseName("June"); 
    tst.setReleaseId("1707"); 
    tst.setIteration("2"); 
    tst.setProjectName("ExpressPay"); 
    tst.setTitle("ExpressPay"); 
    tst.setCreatedBy("Anirban Deb"); 
    tst.setCreationDate(new Date()); 
    tst.setDescription("ExpressPay Login"); 
    tst.setPreCondition("Active account"); 
    tst.setPostCondition("success"); 

    TestCaseStepsForm str1 = new TestCaseStepsForm(); 
    str1.setTestCaseId("1122233"); 
    str1.setInput("Hello World"); 
    str1.setExpectedOutput("Bye Bye world"); 
    str1.setStatus("Run"); 
    str1.setTestCaseForm(tst); 


    TestCaseStepsForm str2 = new TestCaseStepsForm(); 
    str2.setTestCaseId("1122233"); 
    str2.setInput("Hello World"); 
    str2.setExpectedOutput("Bye Bye world"); 
    str2.setStatus("Run"); 
    str1.setTestCaseForm(tst); 


    tst.getTestCaseStepsform().add(str1); 
    tst.getTestCaseStepsform().add(str2); 
    return tst; 

} 

}

でtestCaseStepsform」

パブリッククラスメイン{

public static void main(String[] args) throws MessagingException { 

    StopWatch stopWatch = new StopWatch(); 
    stopWatch.start(); 

    ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("core-bean.xml"); 
    TestCaseForm test1 = context.getBean("testCaseForm1",TestCaseForm.class); 
    ITestCaseService testCase = context.getBean("testCaseServiceImp", ITestCaseService.class); 
    testCase.inserTestCase(test1); 
    [enter image description here][1] 
    stopWatch.stop(); 

    System.out.println("Time taken in execution : "+stopWatch.getTotalTimeSeconds()); 

} 

}

答えて

1

あなたがオブジェクトのプロパティやゲッターに注釈を付けることを選択する必要があります。同時に使用しないでください。別に

0

、xl0e答え

@あなたがマッピングに

@OneToMany(mappedBy = "testCaseForm", cascade = CascadeType.ALL) 
public ArrayList<TestCaseStepsForm> getTestCaseStepsform() { 
    return testCaseStepsform; 
} 
を修正する必要があります
関連する問題