[hibernate-issues] [Hibernate-JIRA] Commented: (ANN-467) Inheritence of Embedded objects (@Embeddable)
Jean Paul Ebejer (JIRA)
noreply at atlassian.com
Wed Oct 18 18:51:25 EDT 2006
[ http://opensource.atlassian.com/projects/hibernate/browse/ANN-467?page=comments#action_24875 ]
Jean Paul Ebejer commented on ANN-467:
--------------------------------------
Thank you Emanuel for posting me in the right direction :)
(Am awaiting your reply - not here though - this is strange)
http://forum.hibernate.org/viewtopic.php?t=966129&highlight=
do you want a postcard from MLT ?
> Inheritence of Embedded objects (@Embeddable)
> ----------------------------------------------
>
> Key: ANN-467
> URL: http://opensource.atlassian.com/projects/hibernate/browse/ANN-467
> Project: Hibernate Annotations
> Type: Bug
> Environment: JBoss 4.0.4, MYSQL 5.0.18, Java JDK 1.5.0_06
> Reporter: Jean Paul Ebejer
>
>
> Hi there @Hibernate (must be a pretty often repeated joke in here...)
> I have an @Embeddable object AllocationId which extends another @Embeddable
> object (GenericId). AllocationId, is simply a marker class and has NO attributes in it,
> while all attributes (String id; which I want to persist) are in GenericId (inherited in AllocationId).
> I get the following exception:
> org.hibernate.AnnotationException: com.xxx.yyy.AllocationId has no persistent id property
> at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1714)
> at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1171)
> at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:706)
> at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:452)
> at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:268)
> at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1039)
> at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1207)
> at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:154)
> at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:844)
> at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:382)
> at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:126)
> at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:102)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
> at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> Any Ideas ?
> Code snippets as follow:
> @Embeddable
> public final class AllocationId extends GenericId {
> // ... serial UID here - removed as considered somewhat sensitive ...
> /**
> * @param id
> */
> public AllocationId(final String id) {
> super(id);
> }
> }
> @Embeddable
> public abstract class GenericId implements Serializable {
> /**
> * The actual Id
> */
> protected String id; // THIS IS NOT BEING 'SEEN' AS INSIDE AllocationId
> /**
> * Constructor to create a generic Id.
> * Syntactic checks are performed here (not null and empty string)
> *
> * @param allocationId The allocation Id
> */
> protected GenericId(final String id) {
> validate(id);
> this.id = id;
> }
> /**
> * Performs syntactic checking of the generic id
> *
> * @param id may not be null or empty ""
> */
> private void validate(final String id) throws IllegalArgumentException {
> if (id == null) {
> throw new IllegalArgumentException("id cannot be null");
> }
> if (id.trim().length() == 0) {
> throw new IllegalArgumentException("id cannot be length 0");
> }
> }
> /**
> * @return the id
> */
> public String getId() {
> return this.id;
> }
> @Override
> public String toString() {
> return getId();
> }
> // some less interesting code here .equals overrides etc.
> }
> Let me know.
> Many Thanks - for your attention and for your GREAT product,
> Malta (MT).
--
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
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list