2

私はテーブルを持ってbookいるborrow必要があり、Borrow クラス メソッドで Book を取得したいと考えています。私はこのようなものを持っています:

    @Entity
@Table(name="borrow")
public class Borrow {
    @Id
    @Column(name="ID")
    @GeneratedValue
    private Long id;

    @Column(name="book_id")
    private long bookId;

    @Column(name="user_id")
    private long userId;

    @Column(name="borrow_date")
    private Date borrowDate;

    @Column(name="return_date")
    private Date returnDate;

    private Book book;

    public long getBookId() {
        return bookId;
    }

    public void setBookId(long bookId) {
        this.bookId = bookId;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "user_id", nullable = false)
    @ForeignKey(name = "id")
    public Book getBook() {
        return this.book;
    }

    public void setBook(Book book) {
        this.book = book;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public Date getBorrowDate() {
        return borrowDate;
    }

    public void setBorrowDate(Date borrowDate) {
        this.borrowDate = borrowDate;
    }

    public Date getReturnDate() {
        return returnDate;
    }

    public void setReturnDate(Date returnDate) {
        this.returnDate = returnDate;
    }

}

テーブルブックには id フィールドがあり、それに参加したいです。book.id =borrow.book_id のように。私は例外を取得します:

Could not determine type for: Book, at table: borrow, for columns: [org.hibernate.mapping.Column(book)]

ブッククラス:

    @Entity
@Table(name="book")
public class Book {
    @Id
    @Column(name="ID")
    @GeneratedValue
    private Long id;

    @Column(name="title")
    private String title;

    @Column(name="author")
    private String author;

    @Column(name="isbn")
    private String isbn;

    @Column(name="year")
    private String year;

    @Column(name="publisher")
    private String publisher;

    @Column(name="book_url")
    private String bookUrl;

    @Column(name="review_url")
    private String reviewUrl;

    @Column(name="status_id")
    private int status;

    @Column(name="accepted")
    private boolean accepted;

    @Column(name="in_library")
    private boolean inLibrary;

    @Column(name="user_id")
    private long userId;

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public boolean isAccepted() {
        return accepted;
    }

    public void setAccepted(boolean accepted) {
        this.accepted = accepted;
    }

    public boolean isInLibrary() {
        return inLibrary;
    }

    public void setInLibrary(boolean inLibrary) {
        this.inLibrary = inLibrary;
    }

    public Book(long l, String string) {
        this.title = string;
        this.id = l;
    }


    public Book() {
    }

    public Long getId() {
        return id;
    }

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

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getYear() {
        return year;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public String getPublisher() {
        return publisher;
    }

    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

    public String getBookUrl() {
        return bookUrl;
    }

    public void setBookUrl(String bookUrl) {
        this.bookUrl = bookUrl;
    }

    public String getReviewUrl() {
        return reviewUrl;
    }

    public void setReviewUrl(String reviewUrl) {
        this.reviewUrl = reviewUrl;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }




}
4

1 に答える 1

2

問題は、フィールド アクセスとプロパティ アクセスを混在させていることです。注釈@Idはフィールド上にあるため、休止状態が の注釈を探している場所bookです。2.2.2.2から。アクセスの種類:

クラス階層内の注釈の配置は、デフォルトのアクセス タイプを決定できるように (フィールドまたはプロパティのいずれかで) 一貫している必要があります。アプリケーション全体で 1 つのアノテーション配置戦略に固執することをお勧めします。

そのため、注釈の一貫性を保つ (推奨) か、そのセクションの残りの部分で説明されているメソッドを使用してbook(たとえば、@Access注釈を使用して)アクセス タイプをオーバーライドします。

于 2013-06-13T21:27:37.120 に答える