Skip to content

BaseEntity 클래스를 상속받을 경우 컴파일 오류 발생. #1

@urstory

Description

@urstory

http://stackoverflow.com/questions/12135233/entity-not-recognizing-the-id-in-a-mappedsuperclass

와 관련된 내용입니다.

영한님의 BaseEntity 클래스를 상속받으면

상속받은 클래스에 다음과 같은 오류가 발생하면서 컴파일이 안되더군요.

the entity has no primary key attribute defined

상속받은 클래스에서 위와 같은 메시지가 출력됩니다.

그래서 BaseEntity를 다음과 같이 수정하였습니다. 위의 stackoverflow.com 의 내용을 참고로 하였습니다.

package kr.co.sunnyvale.guestbook.domain;

import java.io.Serializable;

import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.Version;

import org.springframework.data.jpa.domain.AbstractPersistable;

@MappedSuperclass
@access(AccessType.PROPERTY)
public abstract class BaseEntity extends AbstractPersistable{

private static final long serialVersionUID = -8669707500586538457L;

@Version
@Access(AccessType.FIELD)
private long version;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public PK getId() {
    return super.getId();
}

@Override
public void setId(PK id) {
    super.setId(id);
}

}

혹시 더 좋은 방법이 있을까요? eclipse 의 jpa관련된 버그라는 말도 있는 듯 한데. eclipse는 최신버전인데 말입니다. ^^;;;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions