如何以Spring MVC形式添加下拉列表。我收到错误消息“字段列表中的未知列'domainOptions'”

时间:2019-02-21 03:41:06

标签: hibernate spring-mvc jsp

我正在尝试使用LinkedHashMap填充下拉列表。当我尝试在表中插入数据时,它引发错误“字段列表中的未知列'domainOptions'”

StatusUpdate.java

@Entity
@Table(name="status")
public class StatusUpdate {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="status_id")
private int id;

@Column(name="project")
private String project;

@Column(name="domain")
private String Domain;

@Column(name="status")
private String status;

private LinkedHashMap<String, String> projectOptions;

private LinkedHashMap<String, String> domainOptions;

public StatusUpdate() {
    projectOptions= new LinkedHashMap();

    projectOptions.put("p1","project1");
    projectOptions.put("p2","project2");
    projectOptions.put("p3","project3");
    projectOptions.put("p4","project4");

    domainOptions= new LinkedHashMap();

    domainOptions.put("d1","domain1");
    domainOptions.put("d2","domain2");
    domainOptions.put("d3","domain3");
    domainOptions.put("d4","domain4");
}

public int getId() {
    return id;
}

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

public String getProject() {
    return project;
}

public void setProject(String project) {
    this.project = project;
}

public String getDomain() {
    return Domain;
}

public void setDomain(String domain) {
    Domain = domain;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public LinkedHashMap<String, String> getProjectOptions() {
    return projectOptions;
}

public LinkedHashMap<String, String> getDomainOptions() {
    return domainOptions;
}

}

StatusUpdateDAOImpl.java

@Repository
public class StatusUpdateDAOImpl implements StatusUpdateDAO {

@Autowired
private SessionFactory sessionFactory;

@Override
public void saveStatus(StatusUpdate statusUpdate) {
    Session currentSession = sessionFactory.getCurrentSession();
    currentSession.saveOrUpdate(statusUpdate);

}}

status-update-form.jsp

<form:form action="saveStatus" modelAttribute="statusupdate" method="post">
            <p>
                <label style="padding-left:5.20%; padding-top:9.30%; color: #0091b0;font-size:20px">Domain:                    
                <form:select path="domain" >
                    <form:options items="${statusupdate.domainOptions}" style=" width:31.25%;height:10%;margin-top:1.16%"></form:options>
                </form:select>

               <label  style="padding-left:5.20%; padding-top:9.30%; color: #0091b0;font-size:20px">Domain:                    
                <form:select path="project" >
                    <form:options items="${statusupdate.projectOptions}" style=" width:31.25%;height:10%;margin-top:1.16%"></form:options>
                </form:select>
            </p>

            <p>
                <form:textarea path="status" rows="8" style="margin-top:4.65%;margin-left:5.63%;margin-right:5.63%; font-size:20px; padding-left:0px" placeholder="Update your status here..."></form:textarea>
            </p>

            <p>
                <input type="submit" name="update" class="button" value="UPDATE" style="font-size: 20px; margin-top:0.26%; margin-left:45.04%; width:16.90%; border-radius: 25px;"></input>
            </p>
        </form:form>

Controller.java

@RequestMapping("/saveStatus")
public String saveStatus(@ModelAttribute("statusupdate") StatusUpdate statusUpdate) {
    statusUpdateService.saveStatus(statusUpdate);
    return "redirect:/status-update-form";
}

我已经在网上搜索了此内容。但是没有一个站点解释涉及休眠。请让我知道如何解决此问题?预先感谢

这是我的表结构:

This is my table structure:

1 个答案:

答案 0 :(得分:0)

我通过在StatusUpdate.java中进行以下更改来解决此问题

@Column(insertable=false, updatable=false)
private LinkedHashMap<String, String> projectOptions;

@Column(insertable=false, updatable=false)
private LinkedHashMap<String, String> domainOptions;