【发布时间】:2019-06-07 14:15:29
【问题描述】:
我正在使用带有 hibernate 作为 ORM 的 postgres 数据库。 我有一个名为区的表,带有外键分区。
但插入后,它会在分区表和分区表上创建新条目。首先,它在划分表上创建一个新条目(当时创建了新的 id)。然后它使用新的分区 ID 在区域表上创建新条目。
CREATE TABLE district(
id SERIAL,
division_id INTEGER REFERENCES division(id),
name varchar(30),
PRIMARY KEY (id)
);
这是我的模特:
@Entity
@Table(name = "district")
public class District implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private Integer id;
@ManyToOne(cascade = {CascadeType.ALL})
@JoinColumn(name="division_id")
private Division division;
@Column(name="name")
private String name;
// getter setter
我的控制器:
@GetMapping(value = "/createdistrict")
public ModelAndView createdistrict(Locale locale, Model model) {
List<Division> allDivisionList = new ArrayList<Division>();
allDivisionList = this.districtService.listdivisions() ;
Map<Integer,String> allDivision = new LinkedHashMap<Integer,String>();
for( int i=0 ; i < allDivisionList.size() ; i++) {
allDivision.put(allDivisionList.get(i).getId() , allDivisionList.get(i).getName());
}
return new ModelAndView("createdistrict" , "allDivision" , allDivision);
}
DAO:
@Override
public void adddistrict(District p) {
Session session = this.sessionFactory.getCurrentSession();
session.saveOrUpdate(p);
logger.info("District saved successfully, Phone Details=" + p);
}
我的 jsp 页面:
<tr>
<td>
Division
</td>
<td>
<select id="division" name="division">
<c:forEach items="${allDivision}" var="allDivision">
<option value="${allDivision.key}">${allDivision.value }</option>
</c:forEach>
</select>
</td>
</tr>
【问题讨论】:
-
请提供
Division模型和控制器或服务中的代码,您将在其中将District传递给dao。
标签: postgresql hibernate spring-mvc jsp