Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate实体映射NullPointerException_Java_Hibernate_Object_Jakarta Ee_Mapping - Fatal编程技术网

Java Hibernate实体映射NullPointerException

Java Hibernate实体映射NullPointerException,java,hibernate,object,jakarta-ee,mapping,Java,Hibernate,Object,Jakarta Ee,Mapping,嘿,伙计们,这是我的问题。我有一段Java代码,我不知道 NullPointerException的原因是什么。我支持这是由不正确的对象映射引起的 但我自己还没有找到解决办法 ArrayList<Auction> auctionList = auctionDAO.findAll(); /* Works correctly */ for(Auction auction : auctionList) { System.out.println(auction.getOwner().ge

嘿,伙计们,这是我的问题。我有一段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)
}
ArrayList auctionList=auctionDAO.findAll();/*工作正常*/
用于(拍卖:拍卖列表){
System.out.println(auction.getOwner().getEmail());/*NullPointerException*/
}
/*------------实体------------------*/
@实体
@表(name=“USERS”)
公共类用户实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私有整数id;
(其他物业)
私人字符串电子邮件;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy=“owner”)
@可接合(
name=“所有者\拍卖”,
joinColumns=@JoinColumn(name=“OWNER\u ID”),
inverseJoinColumns=@JoinColumn(name=“拍卖ID”)
)
private Set ownedAductionList=new HashSet();
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
(getter和setter)
}
@实体
@表(name=“拍卖”)
公共类拍卖实现了可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私有整数id;
(其他物业)
@manytone(fetch=FetchType.EAGER)
私人用户所有者;
(其他属性&getter和setter)
}

没有您的表格,很难说。但我想出于调试目的,您应该这样做:

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());
}

这将帮助您找到您的问题

您可以共享您的表吗?如果拍卖不为null,那么auction.getOwner()可能会返回null值。确保auction.getOwner()不为null。谢谢回复。我发现了一个错误。这是一个小错误,因为我的过度迁移。没什么特别的。