Что означает этот отказ JPA?«Код ошибки: 0 Вызов: INSERT INTO таблица (столбец) VALUES (?)» - PullRequest
0 голосов
/ 24 сентября 2018

Я использую JPA для сохранения POJO в таблице MSSQL.Я получил исключение.Это происходит EntityManager.persist(pojo); в следующей функции:

private static void runTransaction(String name) {
    // Create the EntityManager
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("aeosclientPU");
    EntityManager em = factory.createEntityManager();
    em.getTransaction().begin();
    Tst tst = new Tst();
    tst.setName(name);
    tst.setId(1);       //I commented out this line, but get the same exception with id=null
    em.persist(tst);    //here Exception
    em.flush();                     
    em.getTransaction().commit();   
    em.close();
    factory.close();
    System.out.println("FERTIG");
}

Exception in thread "main" javax.persistence.PersistenceException: Exception 
[EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): 
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.DataTruncation: Data truncation
Error Code: 0
Call: INSERT INTO tst (name) VALUES (?)
    bind => [1 parameter bound]
Query: InsertObjectQuery(aeospojo.Tst[ id=1 ])
    at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:868)
at Test.TestTst.runTransaction(TestTst.java:38)
at Test.TestTst.run(TestTst.java:26)
at aeosclient.Aeosmain.main(Aeosmain.java:10)
...

Tst - это POJO, класс сущностей из таблицы MSSQL "tst", который я создал ранее.Таблица tst выглядит следующим образом: enter image description here

Что означает исключение выше и как его исправить?

...