]
Gail Badner reassigned HHH-3584:
--------------------------------
Assignee: Dave Stephan
Hi Dave,
Please resolve this issue if you are through with it.
Thanks,
Gail
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.2.4.sp1, 3.3.1
Reporter: Dave Stephan
Assignee: Dave Stephan
Attachments: AbstractPersister_3_2.txt, AbstractPersister_3_2_4_SP1_CP.txt,
AbstractPersister_3_3.txt, AbstractPersister_trunk.txt
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: