2017-09-04 59 views
0

我不知道为什么对象为空。这在我的项目实体中。我正在使用Spring,Lombok,Hibernate和Vaadin。我想要创建一个新的组。这在我的实体类:虽然我使用新运算符,但Spring实体为null

@Entity 
@Data 
@NoArgsConstructor 
@EqualsAndHashCode(of = { "groupSid" }) 
@Table(name = "ad_group") 

public class Group implements Comparable<Group> { 

@Id 
@Column(name = "group_sid") 
private String groupSid; 

private String name; 

@ManyToMany(mappedBy = "memberOf", fetch = FetchType.LAZY) 
private Set<Person> persons; 

@OneToMany(mappedBy = "group", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) 
private Set<Authority> authorities; 

@Column(name = "jira_ticket_id") 
private String ticketId; 

@Override 
public int compareTo(Group o) { 
    return getName().compareTo(o.getName()); 
} 

@Override 
public String toString() { 
    return name; 
} 

} 

在为我用follwing代码来持久组细节组的编辑对话框。

 btnSave.addClickListener(e -> { 

    Group toSave = new Group(); 
    System.out.println("toSave: " + toSave); 
    toSave.setGroupSid(selectedGroup.getGroupSid()); 
    toSave.setTicketId(tfTicket.getValue()); 
    if (toSave != null) { 
     Group savedGroup = service.saveGroup(toSave); 
     if (savedGroup != null) { 
      parentView.updateUsers(selectedPerson, null, savedGroup); 
     } 
    } 

    close(); 
    }); 

当执行它的代码显示了这个输出中:

toSave: null 

组如何可以为空?我究竟做错了什么?

+0

在控制台... –

+0

我的意思是,在代码x)我看不到pintln。我现在看到了。 – Nathan

回答

6

对象本身不是唯一的nullnamenull

,这就是为什么

@Override 
public String toString() { 
    return name; 
} 

回报null

并运用这种方法当你创建一个对象中的System.out.println声明

System.out.println("toSave: " + toSave);

2

隐式调用,该对象不null.But名字是null

System.out.println("toSave: " + toSave); 

上面的代码将执行toString方法,该名称将被printed.It返回null

相关问题