Автосканирование класса сущностей Eclipselink находит не-сущности - PullRequest
0 голосов
/ 11 августа 2010

Я активировал режим автоопределения Eclipselink 2.0, чтобы найти аннотированные классы @Entity:

<exclude-unlisted-classes>false</exclude-unlisted-classes>

Но Eclipselink говорит мне, что я должен добавить идентификатор для моей сущности:

Причина: исключение [EclipseLink-7161] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException Описание исключительной ситуации: у класса сущности [class com.example.domain.Image] первичный ключ не указан. Он должен определять либо @Id, @EmbeddedId, либо @IdClass. Если вы определили PK с помощью любой из этих аннотаций, убедитесь, что в иерархии классов сущностей нет смешанного типа доступа (аннотированные поля и свойства).

Пример класса:

import java.util.HashSet;
import java.util.Set;

//@Entity No annotation!
public class Image extends File {

    private int width;
    private int height;
    private Set<Image> variants = new HashSet<Image>();

}

Как я могу сказать Eclipselink, что не аннотированные классы @Entity не являются сущностями?

1 Ответ

1 голос
/ 12 августа 2010

Источником проблемы был скомпилированный класс, у которого ранее была аннотация @Entity.Скомпилированный файл класса все еще содержал эту аннотацию, и поэтому Eclipselink считал его сущностью.После запуска maven clean все работает как положено.

...