2013-04-23 6 views
1

Mysql 5.5, как избежать ошибки усечения поля varchar, для выполнения сеанса.Mysql 5.5, как избежать ошибки усечения поля varchar для выполнения сеанса

Я использую Java гибернации MySQL 5.5

Я ищу что-то вроде:

set SESSION sqlMode="AUTO_TRUNCATE_FIELDS" 

вместо получаю сообщение об ошибке.

Возможно ли это сделать программным способом для текущей исполняющей сессии?

ответ

1

Тем временем я реализовал с помощью Java-connection.mysql, как показано здесь:

userDAO.s.doWork(
     new Work() { 
      @Override 
      public void execute(Connection arg0) throws SQLException { 
       DatabaseMetaData databaseMetaData = arg0.getMetaData(); 
       ResultSet rs=databaseMetaData.getColumns(null, null, "event", "%"); 
       while (rs.next()) { 
        if ("title".equals(rs.getString("COLUMN_NAME"))) { 
         titleColumSize=rs.getInt("COLUMN_SIZE"); 
        } 
       } 
     } 
     } 
    );  

затем:

if (title.length()>titleColumSize) 
    title=title.substring(0, titleColumSize-7)+" [...]"; 

Если какое-либо решение конфигурации доступен я буду признателен !! Благодаря!

+0

Я не уверен на 100%, но, скорее всего, нет (без изменения какого-либо глобального параметра СУБД). Связанная дискуссия здесь: http://stackoverflow.com/questions/13950579/how-to-avoid-data-truncated-for-column-in-mysql-database-using-java –

+0

Да, я не пробовал, но я думаю, что strict_mode должен работать, но он влияет на многие другие настройки: http://dev.mysql.com/doc/innodb/1.1/en/innodb-other-changes-strict-mode.html – surfealokesea