Hello Kaushal Niraula, I’m starting to investigate the problem. From early testing, looks like Hibernate can’t detect the circularity when loading the @Any association since all loads are EAGER, triggering an infinite loop between the PropertyHolder and its Property backref. A valid workaround, for the moment, would be setting the association as LAZY, i.e. something like:
@Any(fetch = FetchType.LAZY)
@AnyKeyJavaClass(Long.class)
@AnyDiscriminator(DiscriminatorType.STRING)
@AnyDiscriminatorValues({
@AnyDiscriminatorValue(discriminator = "I", entity = IntegerProperty.class),
@AnyDiscriminatorValue(discriminator = "S", entity = StringProperty.class)
})
@Column(name = "property_type", insertable = false, updatable = false)
@JoinColumn(name = "idtemp", updatable = false, insertable = false)
@Cascade(CascadeType.ALL)
private Property property;
This way the load works correctly. Note that the LAZY association could be the @OneToOne side, but in that case you would need to specify that on all entities implementing Property. |