Я использую 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 выглядит так:

Что означает указанное выше исключение и как его исправить?
Спасибо, Крис. Ваше предложение решает проблему.




«java.sql.DataTruncation: усечение данных» - вы вставляете данные, размер которых превышает размер столбца базы данных. Имя - слишком длинная строка. Какой размер «имени» вам нужно поддерживать? Вам следует увеличить столбец имени в базе данных с 10 до максимального размера, который вам нужен, и добавить проверку, чтобы в будущем вы не пытались вставлять значения, превышающие это.