Ich habe 3 Tabellen in meiner Datenbank - Booking, Restaurant und RestaurantTable. Im Moment versuche ich eine neue Buchung zu erstellen, und eine der nächsten Schritte ist das Hinzufügen einer Tabelle. Aber wenn ich versuche, diese Tabelle hinzuzufügen, wird folgende Fehler aufkommt:org.hibernate.LazyInitializationException (Spring/Hibernate)
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role
Das ist mein Restaurant-Klasse ist:
@Entity
@Table(name="restaurant")
public class Restaurant {
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
@Column(name="restaurant_name")
private String restaurantName;
@Column(name="address")
private String address;
@OneToMany(mappedBy = "restaurant")
private Set<RestaurantTable> table;
// Getters and setters
Ich konnte „Tisch“ zu FetchType.EAGER ändern, aber das verursacht andere Probleme . Meine RestaurantTable Klasse:
@Entity
@Table(name="restaurant_table")
public class RestaurantTable {
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
@Column(name="table_size")
private Integer tableSize;
@Column(name="table_number")
private Integer tableNumber;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="restaurant_id")
private Restaurant restaurant;
// Getters and setters.
Mein BookingController.java:
@RequestMapping(value = "booking/create/{id}", method = RequestMethod.GET)
public String chooseTable(@PathVariable Long id, Model model) {
Booking booking = bookingService.getBooking(id);
Restaurant restaurant = booking.getRestaurant();
Set<RestaurantTable> tableSet = restaurant.getTable();
model.addAttribute("tables", tableSet);
model.addAttribute("booking", booking);
return "chooseTable";
}
Die .jsp der Fehlerdatei aufgetreten in:
<body>
<jsp:include page="../fragments/menu.jsp"/>
<div id="body">
<h2>Create new booking</h2>
<form:form method="POST" modelAttribute="booking" >
<table>
<tr>
<td>Choose a table*:</td>
<td><form:select path="tableNumber">
<form:option value="" label="--- Select ---" />
<form:options items="${tables}" itemValue="tableNumber" itemLabel="tableNumber"/>
</form:select>
</tr>
<tr>
<td colspan="3"><input type="submit" /></td>
</tr>
</table>
</form:form>
<div>
<a href="/bookings">Back to List</a>
</div>
</div>
<jsp:include page="../fragments/footer.jsp"/>
</body>
Jede Hilfe ist willkommen!
Vielen Dank für Ihre Antwort. Ich habe das gemacht und bekomme immer noch den gleichen Fehler. – charliekelly
@charliekelly ı Bearbeiten Sie meine Antwort –
Vielen Dank, es hat funktioniert! – charliekelly