JAVA: этот класс имеет составной первичный ключ. Он должен использовать класс ID

#java #eclipse #hibernate #jpa

#java #eclipse #спящий режим #jpa

Вопрос:

У меня есть эта ошибка в моем редакторе eclipse Этот класс имеет составной первичный ключ. Он должен использовать класс ID. , но у класса нет составного первичного ключа, потому что идентификатор длинный

    @SuppressWarnings("serial")
    @Entity
    @Table(name = "T_PRODUCT")
    @SequenceGenerator(name = "seqPRODUCT", sequenceName = "SEQ_PRODUCT")
    public class Product extends ItemBase implements java.io.Serializable {

        @Id
        private Long id;


@Id
    @Column(name = "ID", unique = true, nullable = false, precision = 38, scale = 0)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqPRODUCT")
    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    ..
    }
  

Комментарии:

1. я думаю, у вас есть 2 аннотации идентификаторов?

2. @pandaadb это было так, пожалуйста, преобразуйте в ответ

3. Ошибка при сборке или просто при проверке Eclipse в редакторе? Мне просто любопытно, потому что я думал, что Hibernate может распознать его, когда он находится в сеттере для того же поля, и просто выдать предупреждение для смешивания свойства (getter / setter) и доступа к полю.

Ответ №1:

Hibernate видит как аннотации к свойству, так и к методу получения и, следовательно, предполагает, что вы используете составной ключ.