-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
@Target Declaration for @Embedded #41
Comments
@glassfishrobot Commented |
@glassfishrobot Commented |
@glassfishrobot Commented |
|
We recently deprecated the above-mentioned I think we should close this issue. |
Anyway, this is from 2012, and has no votes. I'm going to close it. |
Using an @Embedded inside an entity or an other Embedded isn't posible using an Interface for the Declaration of the field.
@entity(name="NaturalPerson")
public class NaturalPersonImpl implements NaturalPerson{
@column(length=50)
private final String firstname;
@column(length=50)
private final String lastname;
@Embedded
@target(NativityImpl.class) // This annotation is a hibernate Annotation, not a JPA Annotation, it shoud be take over in JPA
private final Nativity nativity;
public NaturalPersonImpl(final String firstname, final String lastname, final Nativity nativity)
{ this.firstname=firstname; this.lastname=lastname this.nativity=nativity; }
...
}
...
entityManager.persist(new NaturalPersonImpl("Kylie", "Minogue", new NativityImpl("Melborne", new GregorianCalendar(1968, 4, 28).getTime( ) );
Instead of the @target (as it is done in native Hibernate) something like @Embedded(target=NativityImpl.class) is posible too (as it is done for the normal Relations @onetomany, @manytoone , @manytomany
HardCoding the Implementation is bad, because Mocking with Mockito, EasyMock and so on is limited, when the implementations use final for example. Using the Hibernate Annotations avoid exchange interchangeability of the persistence provider. Specifieng abstract Classes in the target definition may me not possible, because the type can not be resoved reading the values back from database (because it isn't defined like by entities where the implementation is stored in the database). But simple cases without polymorhism should be possible.
The text was updated successfully, but these errors were encountered: