java.lang.IllegalArgumentException: этот класс <> не определяет IdClass - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь обойти эту проблему производной идентичности.В моем сервисе Spring Boot, когда я пытаюсь сохранить LoanInfo (), я получаю эту ошибку:

java.lang.IllegalArgumentException: This class [class org.onewallet.entity.Loan] does not define an IdClass

Генерация идентификатора обрабатывается в AbstractPersistableCustom.java:

@MappedSuperclass

public class AbstractPersistableCustom <PK extends Serializable> implements Persistable<Long> {

     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;

     @Override
     public Long getId() {
             return id;
     }

     /**
      * Sets the id of the entity.
      * 
      * @param id the id to set
      */
     protected void setId(final Long id) {

             this.id = id;
     }

     /*
      * (non-Javadoc)
      * 
      * @see org.springframework.data.domain.Persistable#isNew()
      */
     @Override
     public boolean isNew() {

             return null == this.id;
     }

     //We have removed toString(), hashCode() and equals() methods. By adding them end up issues with OpenJPA
}

В моей сущностиLoan.java у меня есть:

@Entity
@Table(name="m_loan")

public class Loan extends AbstractPersistableCustom<Long> {


    /** Disable optimistic locking till batch jobs failures can be fixed **/
        @Version
        int version;
....
....
}

После прочтения некоторых источников я попытался аннотировать сущность с помощью @IdClass:

@Entity
@IdClass(AbstractPersistableCustom.class)
@Table(name="m_loan")

public class Loan extends AbstractPersistableCustom<Long> {



    /** Disable optimistic locking till batch jobs failures can be fixed **/
        @Version
        int version;
...
...
}

После этого изменения, когда я пытаюсь сохранить данные, я получаю еще одно исключение:

org.springframework.orm.jpa.JpaSystemException: Could not set field value [POST_INSERT_INDICATOR] value by reflection

Любой вклад в то, как я могу решить эту проблему?

...