[
http://opensource.atlassian.com/projects/hibernate/browse/ANN-526?page=co...
]
Paolo "Nusco" Perrotta commented on ANN-526:
--------------------------------------------
After some thought, this is a slippery slope. If we accept this:
class SomeGenericType<T extends SomeType> {
public T property() {return null;}
}
Then there is no reason why we shouldn't accept this implicit upper bound as well:
class SomeOtherGenericType<T> {
public T property() {return null;} // T is approximated to Object
}
The problem is how much we want to push this type of guessing. I see four options:
1 - The system tries to be smart and approximates all generic types as well as it can.
List<T extends Runnable> becomes List<Runnable>, T becomes Object and so on.
This might cause problems at runtime, of course.
2 - The system does as above, but logs a warning every time an approximated type is
registered.
3 - The system approximates only in certain situations. Maybe different approximation
strategies can be plugged in.
4 - The system doesn't try to be too smart, and throws an error whenever a type is not
fully resolved.
Emmanuel, WDYT?
Property xyz has an unbound type - is that so?
----------------------------------------------
Key: ANN-526
URL:
http://opensource.atlassian.com/projects/hibernate/browse/ANN-526
Project: Hibernate Annotations
Type: Bug
Versions: 3.2.1
Reporter: Sebastian Kirsch
Assignee: Paolo "Nusco" Perrotta
Priority: Minor
Attachments: Hibernate ANN-526.zip
I get this "Property reference has an unbound type and no explictit target
entity" exception and I think this is not exactly true. I'm not sure if this is a
bug or a feature requests though.
Have a look at the attached files and read on.
I guess the model ist pretty easy to understand. The AbstractGeneric allows my to have
concrete entities referring to specifc other subclasses - as seen in ConcreteOther and
ConcreteSelf. The test case "workingClasses" shows us that Hibernate may work
with this model - note that the class AbstractGeneric itslef was NOT added to the
configuration.
Now for the problem: The class OtherEntity is a completly different entity, but it refers
to instances of AbstractGeneric - to any subclass of it actually, as AbstractGeneric is
obviously abstract.
If you run the test case "otherClass" the first part states that Hibernate
doesn't know AbstractGeneric - which is fine, so I add that class to the configuration
and try to build a session factory again. Now we receive the beforementioned exception.
That's the situation. So is AbstractGeneric really an unbound type? I'd say it is
not - T has an upper bound which should be good enough to work with - we know the table
and the PK...
--
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