javax.persistence.PersistenceException: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement UPDATE TBYTES_ONLY SET WHERE[*] ID=? ; expected identifier; SQL statement:update tbytes_only set where id=? [42001-115] at com.avaje.ebean.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:107)
Reference the TestByteOnly testcase.
Basically the dirty checking in EntityBeanIntercept uses standard equals ... but the value changed check used to detect changed properties checks the byte[] via length and values.
This results in the update with no columns being updated ... when the value set is exactly the same as the current value.
The fix is to incorporate the more strict dirty checking in EntityBeanIntercept ... both for byte[] and char[].
Fixed in HEAD.