出现意外错误类型=内部服务器错误,状态=500
There was an unexpected error type=Internal Server Error, status=500
大家好,当我将以下行添加到我的函数时出现错误 500 :
Ticket ti = ticketRepository.findOneById(idtick);
或者这个:
Ticket ti = ticketRepository.findById(idtick).get();
它们都不起作用,这是我的功能:
@GetMapping(path = "/tickets")
public String tickets(Model model, Long idp,
@RequestParam(name = "page", defaultValue = "0") int page,
@RequestParam(name = "size", defaultValue = "8") int size,
@RequestParam(name = "idtick", defaultValue = "0") Long idtick) {
Ticket t = new Ticket();
if(idtick!=0) {
System.out.println("ID Ticket : "+idtick);
Ticket ti = ticketRepository.findOneById(idtick);
System.out.println(ti);
}
//Projection p = projectionRepository.findOneById(idp);
model.addAttribute("ticket", t);
Projection p = projectionRepository.findOneById(idp);
Page<Ticket> tickets = ticketRepository.findByProjection(p, PageRequest.of(page, size));
model.addAttribute("idprojection", idp);
model.addAttribute("tickets", tickets);
model.addAttribute("page", page);
model.addAttribute("films", tickets.getContent());
model.addAttribute("pages", new int[tickets.getTotalPages()]);
model.addAttribute("currentPage", page);
model.addAttribute("idtick", idtick);
model.addAttribute("size", size);
return "tickets";
}
这是门票 class :
@Entity
@Data @NoArgsConstructor @AllArgsConstructor
public class Ticket {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length=75)
private String nomClient;
private double prix;
//@Column(unique = true, nullable=true)
@Column(unique = false,nullable=true)
private Integer codePayement;
private boolean reserve;
@ManyToOne
private Place place;
@ManyToOne
private Projection projection;
}
ticketRepository 代码:
@RepositoryRestResource
@CrossOrigin("*")
public interface TicketRepository extends JpaRepository<Ticket, Long> {
public Ticket findOneById(Long id);
}
这是堆栈跟踪:
java.lang.WhosebugError: null at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) ~[na:1.8.0_251] at java.lang.AbstractStringBuilder.append(Unknown Source) ~[na:1.8.0_251] at java.lang.StringBuilder.append(Unknown Source) ~[na:1.8.0_251] at sun.misc.FloatingDecimal$BinaryToASCIIBuffer.appendTo(Unknown Source) ~[na:1.8.0_251] at sun.misc.FloatingDecimal.appendTo(Unknown Source) ~[na:1.8.0_251] at java.lang.AbstractStringBuilder.append(Unknown Source) ~[na:1.8.0_251] at java.lang.StringBuilder.append(Unknown Source) ~[na:1.8.0_251]
谁能告诉我怎么了?
提前致谢。
这是无限循环的症状。如果 Projection
或 Place
类 包含 Ticket
元素,那么 Lombok 在尝试为这些 [=] 生成方法时 运行 进入无限递归循环16=]。检查您的代码是否存在其他类似的循环依赖项。参见:
您能否从实体 class 中删除 @Data、@NoArgConstrucor、@AllArgConstructor 并显式添加内容。您在错误的位置定义了 CrossOrigin。您是否在 classpath 中包含了 spring-data-jpa-repository jar?这个实体 class 是否被扫描,否则你必须明确地使用 @EnableJpaReposiry。由于 JPA 而生成的 SQL 查询是什么。你的数据库启动了吗? 运行您的应用程序处于调试模式,这会很有帮助。
大家好,当我将以下行添加到我的函数时出现错误 500 :
Ticket ti = ticketRepository.findOneById(idtick);
或者这个:
Ticket ti = ticketRepository.findById(idtick).get();
它们都不起作用,这是我的功能:
@GetMapping(path = "/tickets")
public String tickets(Model model, Long idp,
@RequestParam(name = "page", defaultValue = "0") int page,
@RequestParam(name = "size", defaultValue = "8") int size,
@RequestParam(name = "idtick", defaultValue = "0") Long idtick) {
Ticket t = new Ticket();
if(idtick!=0) {
System.out.println("ID Ticket : "+idtick);
Ticket ti = ticketRepository.findOneById(idtick);
System.out.println(ti);
}
//Projection p = projectionRepository.findOneById(idp);
model.addAttribute("ticket", t);
Projection p = projectionRepository.findOneById(idp);
Page<Ticket> tickets = ticketRepository.findByProjection(p, PageRequest.of(page, size));
model.addAttribute("idprojection", idp);
model.addAttribute("tickets", tickets);
model.addAttribute("page", page);
model.addAttribute("films", tickets.getContent());
model.addAttribute("pages", new int[tickets.getTotalPages()]);
model.addAttribute("currentPage", page);
model.addAttribute("idtick", idtick);
model.addAttribute("size", size);
return "tickets";
}
这是门票 class :
@Entity
@Data @NoArgsConstructor @AllArgsConstructor
public class Ticket {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length=75)
private String nomClient;
private double prix;
//@Column(unique = true, nullable=true)
@Column(unique = false,nullable=true)
private Integer codePayement;
private boolean reserve;
@ManyToOne
private Place place;
@ManyToOne
private Projection projection;
}
ticketRepository 代码:
@RepositoryRestResource
@CrossOrigin("*")
public interface TicketRepository extends JpaRepository<Ticket, Long> {
public Ticket findOneById(Long id);
}
这是堆栈跟踪:
java.lang.WhosebugError: null at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) ~[na:1.8.0_251] at java.lang.AbstractStringBuilder.append(Unknown Source) ~[na:1.8.0_251] at java.lang.StringBuilder.append(Unknown Source) ~[na:1.8.0_251] at sun.misc.FloatingDecimal$BinaryToASCIIBuffer.appendTo(Unknown Source) ~[na:1.8.0_251] at sun.misc.FloatingDecimal.appendTo(Unknown Source) ~[na:1.8.0_251] at java.lang.AbstractStringBuilder.append(Unknown Source) ~[na:1.8.0_251] at java.lang.StringBuilder.append(Unknown Source) ~[na:1.8.0_251]
谁能告诉我怎么了? 提前致谢。
这是无限循环的症状。如果 Projection
或 Place
类 包含 Ticket
元素,那么 Lombok 在尝试为这些 [=] 生成方法时 运行 进入无限递归循环16=]。检查您的代码是否存在其他类似的循环依赖项。参见:
您能否从实体 class 中删除 @Data、@NoArgConstrucor、@AllArgConstructor 并显式添加内容。您在错误的位置定义了 CrossOrigin。您是否在 classpath 中包含了 spring-data-jpa-repository jar?这个实体 class 是否被扫描,否则你必须明确地使用 @EnableJpaReposiry。由于 JPA 而生成的 SQL 查询是什么。你的数据库启动了吗? 运行您的应用程序处于调试模式,这会很有帮助。