Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Labels:
      None

      Description

      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.

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            ldemichiel
            Reporter:
            mquasten
          • Votes:
            2 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated: