Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] NullPointerException for ManyToOne in genericEmbeddable

Here is a paraphrase of the code:

@Embeddable
public class Value  implements Serializable {
	@ManyToOne
	private A asset;

	@Basic
	private double value;
}

@Entity
@Inheritance(strategy=InheritanceStrategy.Joined)
public Asset{
	@Id
	private String name; 
}

@Entity
public Stock extends Asset{
	private String ticker;
}

@Entity
public ValueHolder{
	@Id
	String name;

	@Embedded
	private Value<Stock> value;
}

The same exact
EntityAccessor.discoverMappedSuperclassesAndInheritanceParents() method may
not work, but wouldn't it make sense to have a similar method that discovers
the TypeVariables for Embedded classes and populates m_genericTypes?


Guy Pelletier wrote:
> 
> That likely won't fix it.
> 
> What does your embeddable mapping look like?
> 
> Cheers,
> Guy
> ----- Original Message ----- 
> From: "jml83" <jeffrey.m.leong@xxxxxxxxx>
> To: <eclipselink-users@xxxxxxxxxxx>
> Sent: Friday, July 17, 2009 1:12 PM
> Subject: [eclipselink-users] NullPointerException for ManyToOne in 
> genericEmbeddable
> 
> 
>>
>> I get the following exception when trying to process an Embeddable with a
>> generic ManyToOne relationship using the built in
>> org.eclipse.jpt.eclipselink.core.ddlgen.Main class in Eclipse Galileo:
>>
>> Caused by: java.lang.NullPointerException
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotatedElement.setAnnotatedElement(MetadataAnnotatedElement.java:559)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotatedElement.<init>(MetadataAnnotatedElement.java:90)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.<init>(MetadataClass.java:32)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotatedElement.isEmbedded(MetadataAnnotatedElement.java:359)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.buildAccessor(ClassAccessor.java:261)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processAccessorFields(ClassAccessor.java:577)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.addAccessors(ClassAccessor.java:239)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processAccessors(ClassAccessor.java:633)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EmbeddableAccessor.process(EmbeddableAccessor.java:85)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.EmbeddedAccessor.processEmbeddableClass(EmbeddedAccessor.java:345)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.EmbeddedAccessor.process(EmbeddedAccessor.java:134)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.processAccessors(MetadataDescriptor.java:1082)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processAccessors(ClassAccessor.java:636)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.processAccessors(EntityAccessor.java:611)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.process(EntityAccessor.java:530)
>> at
>> org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:446)
>> at
>> org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:303)
>> at
>> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:838)
>> ... 8 more
>>
>> I took the liberty of debugging the stack a lil bit, and it seems the
>> m_rawClass doesn't get set properly in the method
>> MetadataAnnotatedElement.getRawClass() because the m_genericTypes
>> variable
>> never gets populated for EmbeddableAccessor.
>>
>> It does however get populated properly for Entites by the
>> EntityAccessor.discoverMappedSuperclassesAndInheritanceParents() method. 
>> At
>> the risk of sounding presumptuous, it would seem calling a similar method 
>> in
>> the process() method of the EmbeddableAccessor might fix this...
>> Apologies
>> for the amateur diagnosis, but this has been really jamming up my work.
>>
>> Could this be fixed for generics on Embeddables?
>>
>> p.s. should I be sending this to the DEV list?
>>
>> -- 
>> View this message in context: 
>> http://www.nabble.com/NullPointerException-for-ManyToOne-in-generic-Embeddable-tp24535000p24535000.html
>> Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>> 
> 
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 

-- 
View this message in context: http://www.nabble.com/NullPointerException-for-ManyToOne-in-generic-Embeddable-tp24535000p24541659.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top