Java 具有一对多映射的下拉列表(Spring/Hibernate)
现在我的数据库中有3张桌子——预订、餐厅和餐厅。我在餐厅和RestaurantTable之间有一个一对多映射(一个餐厅可以有许多桌子,但一个桌子只能有一个餐厅)。我有一个名为“editRestaurant.jsp”的文件,其中(除其他外)我希望在下拉列表中显示餐厅中当前的所有桌子。我想做一些与“newBooking.jsp”中类似的事情: 我当前的editRestaurant.jsp:Java 具有一对多映射的下拉列表(Spring/Hibernate),java,html,database,spring,hibernate,Java,Html,Database,Spring,Hibernate,现在我的数据库中有3张桌子——预订、餐厅和餐厅。我在餐厅和RestaurantTable之间有一个一对多映射(一个餐厅可以有许多桌子,但一个桌子只能有一个餐厅)。我有一个名为“editRestaurant.jsp”的文件,其中(除其他外)我希望在下拉列表中显示餐厅中当前的所有桌子。我想做一些与“newBooking.jsp”中类似的事情: 我当前的editRestaurant.jsp: <div id="body"> <section class="content-wrappe
<div id="body">
<section class="content-wrapper main-content clear-fix">
<h2>Edit</h2>
<form:form modelAttribute="restaurant">
<table>
<tr>
<td>Restaurant:</td>
<td><form:input path="restaurantName" /></td>
<td><form:errors path="restaurantName" cssClass="error"/></td>
</tr>
<tr>
<td>Address:</td>
<td><form:input path="address" /></td>
<td><form:errors path="address" cssClass="error"/></td>
</tr>
<!--I want to put the list of tables here.-->
<tr>
<td colspan="3"><input type="submit" value="Submit" name="submit"/>
</td>
</tr>
</table>
</form:form>
<div>
<a href="/bookings">Back to List</a>
</div>
</section>
编辑
餐厅:
地址:
感谢您的帮助 映射似乎是正确的。。。但问题是??见:
@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", cascade = CascadeType.ALL)
private Set<RestaurantTable> table;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getRestaurantName() {
return restaurantName;
}
public void setRestaurantName(String restaurantName) {
this.restaurantName = restaurantName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Set<RestaurantTable> getTable() {
return table;
}
public void setTable(Set<RestaurantTable> table) {
this.table = table;
}
public String toString() {
return restaurantName;
}
}
@Entity
@Table(name="restaurant_table")
public class RestaurantTable {
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
@Column(name="table_size")
private int tableSize;
@Column(name="table_number")
private int tableNumber;
@ManyToOne
@JoinColumn(name="restaurant_id")
private Restaurant restaurant;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public int getTableSize() {
return tableSize;
}
public void setTableSize(int tableSize) {
this.tableSize = tableSize;
}
public int getTableNumber() {
return tableNumber;
}
public void setTableNumber(int tableNumber) {
this.tableNumber = tableNumber;
}
public Restaurant getRestaurant() {
return restaurant;
}
public void setRestaurant(Restaurant restaurant) {
this.restaurant = restaurant;
}
public String toString() {
return "Table number " + tableNumber;
}
}
<div id="body">
<section class="content-wrapper main-content clear-fix">
<h2>Edit</h2>
<form:form modelAttribute="restaurant">
<table>
<tr>
<td>Restaurant:</td>
<td><form:input path="restaurantName" /></td>
<td><form:errors path="restaurantName" cssClass="error"/></td>
</tr>
<tr>
<td>Address:</td>
<td><form:input path="address" /></td>
<td><form:errors path="address" cssClass="error"/></td>
</tr>
<!--I want to put the list of tables here.-->
<tr>
<td colspan="3"><input type="submit" value="Submit" name="submit"/>
</td>
</tr>
</table>
</form:form>
<div>
<a href="/bookings">Back to List</a>
</div>
</section>