hibernate - Spring Boot Post Request Method not having all Object values -


using spring boot, hibernate jpa , thymeleaf.

i have order database table holds 1 record. record has few columns , of columns not seen on forms, set upon saving order, instance creation date.

on request below select specific order , values returned order object expected.

this request method:

@requestmapping(value = "/editorder/{orderid}", method = requestmethod.get) public string editorderget(model model, @pathvariable long orderid) {     order order = orderservice.findbyid(orderid);     model.addattribute("order", order);     return "/editorder"; } 

this small snippit of edit order html form using thymeleaf, binding order object form using th:object below:

<form role="form" th:action="@{/editorder}" th:object="${order}" method="post">    <input type="hidden" th:field="*{orderid}"/>    <button type="submit" class="btn btn-primary">update order</button>    .    . </form> 

and post request method:

@requestmapping(value = "/editorder", method = requestmethod.post) public string editorderpost(model model,          @valid @modelattribute("order") order order, bindingresult bindingresult) {     //rest of code here } 

as can see, on request adding order object model. on html form, binding order object entire form. on post request getting order object.

but on post seen new order , contains fields specified in form, instance not contain creation date seen in request.

my question this:

am missing or explicitly need go set each of fields hidden fields on form?

in response may returning whole order object model, thymeleaf when trying build actual html template pick items needs build template. fields used in form used build form in html page.

so when u resubmit form post service fields available in form reposted.

if u want these fields displayed on page add these fields in form. thymeleaf picks them , displays in form. if dont want them shown in page ignore them. order object u receive in post not have fields not available in original form.

u can them querying database, how have order id saved hidden field.

public string editorderpost(model model,          @valid @modelattribute("order") order order, bindingresult bindingresult){     order orderfromdb = orderservice.findbyid(order.getid());      // code update orderfromdb order object     orderservice.save(order); } 

this save updated fields database.

generally not practice expose entity objects api. try using dto/value object. can have fields define business fields. u can use beanmapper frameworks dozer/mapstruct/modelmapper copy dto entity , vice versa.


Comments

Popular posts from this blog

c# - Update a combobox from a presenter (MVP) -

How to understand 2 main() functions after using uftrace to profile the C++ program? -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -