0

我正在使用休眠(多对一)关系:

    @Entity
    public class City implements Serializable {

        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue
        private long id;
        private String description;
        @ManyToOne
        @JoinColumn(name="state_id")
        private State state;...
    }

城市模型:

    @Entity
    public class State {    
        @Id
        @GeneratedValue
        private long id;
        private String description;
        @OneToMany(mappedBy="state")

        private List<City> city=new ArrayList<>();...
    }

客户型号:

    @Entity
    public class Customer implements Serializable {
        /**
         * 
         */
        private static final long serialVersionUID = -5442590361339242648L;
        @Id
        @GeneratedValue
        private long id;
        @NotEmpty
        private String firstname;
        @NotEmpty
        private String lastname;
        @NotEmpty
        private String phone;
        @NotEmpty
        private String address;
        @ManyToOne
        @JoinColumn(name="city_id")
        private City city;
        @ManyToOne
        @JoinColumn (name="state_id")
        private State state;
        @NotEmpty
        private String zipcode;
        @NotEmpty
        @Email
        private String email;
        private int status;
        private Date createdate;

        @OneToMany(mappedBy = "customer")
        private List<Account> account = new ArrayList<Account>();...
    }

    in my controller i've a method:

    @RequestMapping(value = "/city", method = RequestMethod.GET)
        public @ResponseBody
        List<City> findCities(
                @RequestParam(value = "stateId", required = true) long city,
                Model model) {

            List<City> myCity = cityDao.getCityState(city);

            return myCity;
        }

我有一个 jquery 函数:

<script type="text/javascript">
    $(document).ready(function() {
        $('#state').change(function() {
            $.getJSON('${findCitiesURL}',{stateId : $(this).val(),ajax : 'true'},
                function(data) {
                    var html = '<option value="">City</option>';
                        var len = data.length;
                            for ( var i = 0; i < len; i++) {
                                html += '<option value="' + data[i].id + '">'+ data[i].description+ '</option>';
                            }
                            html += '</option>';
                            $('#city').html(html);
                            });
                            });
                    });
</script> 

我的问题是如何在 jquery 中替换显示城市的代码,例如 form:select path ...

我无法在我的数据库中保存数据

4

1 回答 1

0

首先要理解的是显示 HTML 元素应该与 Hibernate 无关。您不应该将演示文稿 (HTML) 与持久性 (Hibernate) 混淆。

要显示城市的下拉列表,<form:select>可以像这样使用 Spring 标签:

<form:select path="city" items="${cities}" itemLabel="description" itemValue="id" />

${cities}指您应该传递给控制器​​的 City 对象集合的模型属性。itemLabel 和 itemValue 设置应该使用什么标签/值来填充 HTML<option>标签

当您的控制器必须从数据库中获取一组城市时,休眠(持久性)就会发挥作用。

于 2013-07-24T07:20:18.860 回答