Работает ли аннотация @PersistenceConstructor в Spring Data JPA в сочетании с Hibernate? - PullRequest
0 голосов
/ 28 августа 2018

Я хочу, чтобы Hibernate использовал другой конструктор, а не пустой конструктор, поскольку у меня есть некоторая логика, которая должна выполняться при создании объекта, но зависит от свойств объекта. Я прочитал здесь , что @PersistenceConstructor решает это.

Я создал этот пример сущности:

@Entity
public class TestEntity
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @JsonIgnore
    public final Long id;

    public final int width;

    public final int height;

    @Transient
    private final double area;

    @PersistenceConstructor
    public TestEntity(Long id, int width, int height)
    {
        this.id = id;
        this.width = width;
        this.height = height;
        this.area = width * height;
    }

    public double getArea()
    {
        return this.area;
    }

    public interface TestEntityRepository extends CrudRepository<TestEntity, Long>
    {
    }
}

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

org.hibernate.InstantiationException: No default constructor for entity

Я что-то не так делаю или аннотация @PersistenceConstructor не работает в этом контексте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...