У меня есть веб app, используя EclipseLink и MySQL для хранения данных. Некоторые из этих данных являются строками, то есть varchars в БД. В коде объектов строки имеют такие атрибуты:
@Column(name = "MODEL", nullable = true, length = 256)
private String model;
база данных не создается eclipseLink из кода, но длина соответствует длине varchar в БД. Когда длина таких строковых данных больше, чем атрибут длины, во время вызова javax возникает исключение. .persistence.EntityTransaction.commit ():
javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.1.0.v20100614-r7608): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'MODEL' at row 1
Затем транзакция откатывается. Хотя я понимаю, что это поведение по умолчанию, это не то, что мне нужно. Я бы хотел данные, которые нужно замолчать tly усечен, и транзакция будет зафиксирована.
Могу ли я сделать это, не добавляя вызов подстроки к каждому методу набора строковых данных для соответствующих сущностей?