|
From: <leg...@at...> - 2003-08-12 08:23:14
|
The following comment has been added to this issue:
Author: Max Rydahl Andersen
Created: Tue, 12 Aug 2003 3:22 AM
Body:
Have you tried adding insert="false" to the meta attribute in the class ? It may surprise you to see that what happens is that the class GETS the meta tag (as it is in the class), but the meta tag is NOT inherited by any sub-tags.
Please say if you have tried it and it then did not work, because then we have a bug - and then i would like to see you hbm.xml which does not work.
Here is what i expect you to do ;)
<class name="com.rhi.domain.impl.Person" table="people">
<meta inherit="false" attribute="implements">com.rhi.domain.Person</meta>
<composite-id name="pk" class="com.rhi.domain.impl.id.PersonPk">
<key-property name="personId" column="person_id" type="java.lang.Long"/>
<key-property name="personRegionId" column="person_region_id" type="java.lang.Long"/>
</composite-id>
<property name="number" column="people_no" type="java.lang.Long"/>
<property name="firstName" column="first_name" type="java.lang.String"/>
<property name="middleName" column="middle_name" type="java.lang.String"/>
<property name="lastName" column="last_name" type="java.lang.String"/>
</class>
---------------------------------------------------------------------
View the issue:
http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-242
Here is an overview of the issue:
---------------------------------------------------------------------
Key: HB-242
Summary: <meta attribute="implements"> does not behave as expected
Type: Bug
Status: Closed
Priority: Major
Resolution: REJECTED
Project: Hibernate2
Components:
toolset
Versions:
2.0.1
Assignee:
Reporter: abe zafar
Created: Sun, 10 Aug 2003 2:40 AM
Updated: Sun, 10 Aug 2003 6:37 AM
Environment: JDK1.4
Description:
If the tag <meta attribute="implements">com.hp.Printer</meta> is inserted as a child of the class tag it properly adds the implement clause to the class. But if that class also contained a <composite-id> tag which indicated a class then that class would also UNEXPECTEDLY implement the interface "com.hp.Printer".
So in the following example:
<class name="com.hp.ColorPrinter">
<meta attribute="implements">com.hp.Printer</meta>
<composite-id
name="propertyName"
class="com.hp.PrinterId">
<key-property name="propertyName" type="typename" column="column_name"/>
<key-many-to-one name="propertyName class="ClassName" column="column_name"/>
</composite-id>
Both "ColorPrinter" and "PrinterId" end up implementing "com.hp.Printer". ColorPrinter is expected to implement the interface, but PrinterId should not implement the interface.
---------------------------------------------------------------------
JIRA INFORMATION:
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.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
|