Generate SQL when Dynamic Update is true is including version field even when marked as
updateable=false
--------------------------------------------------------------------------------------------------------
Key: HHH-3584
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3584
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.3.1, 3.2.4.sp1
Reporter: Dave Stephan
If an entity has the annotation:
@Enitity(dynamicUpdate=true)
And a field annotated as :
@Version
@Generated(GenerationTime.Always)
@Column(updateable=false, insertable=false)
The generated update sql will include the annotated field in the properties to be updated.
This is incorrect and causes exceptions in certain cases. E.g updating a view where the
resulting columns cross multiple tables.
When the dynamicUpdate is set to true, the sql string is generated dynamically and
initially the field marked as updateable=false is flagged as not to be included. The
AbstractEntityPersiter.getPropertiesToUpdate method then checks if there is a versioning
field, finds the above annotated column and now flags it to be included, neglecting to
check whether this versioning field has also been marked as updateable=false, or whether
@Generated(GenerationTime.ALWAYS) is there. (Although the last isn't really necessary
as this annotation can't be there without the column being marked as not updateable
and not insertable.)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira