簡體   English   中英

休眠實體映射NullPointerException

[英]Hibernate Entities Mapping NullPointerException

Hej Guys,這是我的問題。 我有一段Java代碼,不知道NullPointerException的原因是什么。 我認為這是由於錯誤的對象映射引起的,但我還沒有找到解決方案。

ArrayList<Auction> auctionList = auctionDAO.findAll();  /* Works correctly */

for(Auction auction : auctionList) {
System.out.println(auction.getOwner().getEmail());  /* NullPointerException */
}

/* -------------- ENTITIES --------------- */

@Entity
@Table(name="USERS")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;

    (other properties)
    private String email;
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="owner")
    @JoinTable(
            name="OWNER_AUCTION",
            joinColumns = @JoinColumn(name="OWNER_ID"),
            inverseJoinColumns = @JoinColumn(name="AUCTION_ID")
    )
    private Set<Auction> ownedAuctionList = new HashSet<Auction>();

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    (getters & setters)
}

@Entity
@Table(name="AUCTIONS")
public class Auction implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;

    (other properties)

    @ManyToOne(fetch=FetchType.EAGER)
    private User owner;

    (other properties & getters & setters)
}

沒有桌子,很難說。 但我想出於調試目的,您應該執行以下操作:

for(Auction auction : auctionList) {
    if(auction.getOwner()==null){
        System.out.println("Null Owner");
    }
    else if(auction.getOwner().getEmail()==null){
        System.out.println("Null mail");
    }
    else
    System.out.println(auction.getOwner().getEmail());
}

這應該可以幫助您找到問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM