[Ljava.lang.Object;无法转换为com.yess.erp.crm.domain.Task错误

时间:2015-06-28 17:05:48

标签: spring-data-jpa

我正在使用Spring数据jpa,我正在尝试这样做:

listen 80 default_server;
            listen [::]:80 default_server;

但我收到了这个错误:

@RequestMapping(value = "/setview/{id}", method = RequestMethod.GET)
public Iterable<Task> setView(@PathVariable Integer id) {
    System.out.println("setViewTrue  -------------------");
    Iterable<Task> tasks = taskRepository.findByUserId(id);

    for (Task t : tasks) {
        t.setView(true);
        taskRepository.save(t);
        System.out.println("task****: "+ t.isView());
    }
    return tasks; 
 }

这是我的Task.java:

[Ljava.lang.Object; cannot be cast to com.yess.erp.crm.domain.Task
i just want to loop an iterbale of tasks and change the value of a boolean(false) to true.

这是我的TaskRepository.java:

@Entity
public class Task implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@SequenceGenerator(name = "pk_sequence", sequenceName = "task_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "pk_sequence")
private Integer id;

@NotEmpty
private String title;

@Lob
private byte[] image;
private Date created_at;
private Date start_date;
private Date end_date;
private String description;
private boolean view;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
private User user;

public Task() {
}

public Task(String title, User user) {
    super();
    this.title = title;

}

public Integer getId() {
    return id;
}

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

public String getTitle() {
    return title;
}

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

public byte[] getImage() {
    return image;
}

public void setImage(byte[] image) {
    this.image = image;
}

public Date getStart_date() {
    return start_date;
}

public void setStart_date(Date start_date) {
    this.start_date = start_date;
}

public Date getEnd_date() {
    return end_date;
}

public void setEnd_date(Date end_date) {
    this.end_date = end_date;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public Date getCreated_at() {
    return created_at;
}

public void setCreated_at(Date created_at) {
    this.created_at = created_at;
}

public User getUser() {
    return user;
}

public void setUser(User user) {
    this.user = user;
}



public boolean isView() {
    return view;
}

public void setView(boolean view) {
    this.view = view;
}

}

这是我的TaskController.java:

public interface TaskRepository extends CrudRepository<Task, Integer>    {

 @Query("from Task as t inner join t.user as u where u.id = :id AND t.view = false")
Iterable<Task> findByUserId(@Param("id") Integer id);

}

1 个答案:

答案 0 :(得分:1)

您的查询不仅仅返回任务,它可能会返回Object []数组中的任务和用户。

您可以更改查询以恢复任务。我在想SELECT t FROM Task t ......