0

すべてのクラス/エンティティに対して ID とタイムスタンプを持つ ModelBase を使用します。しかし、インターフェイスLongで主キーのタイプを使用すると、メッセージが表示されますJPARepository<>

Not an entity: class java.lang.Long

コード:

@MappedSuperclass
public class ModelBase implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(nullable = false, columnDefinition = "datetime")
    private Date lastModified;

    public Long getId() {
        return id;
    }

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

    public Date getLastModified() {
        return lastModified;
    }

    public void setLastModified(Date lastModified) {
        this.lastModified = lastModified;
    }

    @PreUpdate
    @PrePersist
    public void updateLastModified() {
        lastModified = new Date();
    }

}

Modelbase から継承された Modelclass

@Entity
@Table(name = "Name")
public class Name extends ModelBase implements Serializable {}

レポ

public interface NameRepository extends JpaRepository<Long, Name>{}

私は何を間違っていますか?

ありがとう

4

1 に答える 1

3

それは逆です:

JpaRepository<Name, Long>

最初にエンティティ、次に ID。JPRepository javadoc を確認してください。

于 2012-05-09T14:20:21.613 に答える