mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
FIX: Bean did not get dirty when modified with ExpressionPath.pathSet
This commit is contained in:
@@ -2,6 +2,7 @@ package com.avaje.ebean.plugin;
|
||||
|
||||
import com.avaje.ebean.Ebean;
|
||||
import com.avaje.ebean.EbeanServer;
|
||||
import com.avaje.tests.model.basic.Customer;
|
||||
import com.avaje.tests.model.basic.Order;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -76,4 +77,46 @@ public class ExpressionPathTest {
|
||||
assertThat(order.getCustomer().getName()).isEqualTo("Rob");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_dirty() throws Exception {
|
||||
|
||||
|
||||
BeanType<Customer> customerBeanType = beanType(Customer.class);
|
||||
BeanType<Order> orderBeanType = beanType(Order.class);
|
||||
|
||||
|
||||
Customer customer = new Customer();
|
||||
customer.setName("foo");
|
||||
server.save(customer);
|
||||
|
||||
customer = server.find(Customer.class, customer.getId());
|
||||
assertThat(customer.getName()).isEqualTo("foo");
|
||||
|
||||
customerBeanType.getExpressionPath("name").pathSet(customer, "bar");
|
||||
server.save(customer);
|
||||
|
||||
customer = server.find(Customer.class, customer.getId());
|
||||
assertThat(customer.getName()).isEqualTo("bar");
|
||||
|
||||
|
||||
Order order = new Order();
|
||||
order.setCustomer(customer);
|
||||
|
||||
server.save(order);
|
||||
|
||||
order = server.find(Order.class, order.getId());
|
||||
|
||||
ExpressionPath customerNamePath = orderBeanType.getExpressionPath("customer.name");
|
||||
assertThat(customerNamePath.pathGet(order)).isEqualTo("bar");
|
||||
|
||||
customerNamePath.pathSet(order, "baz");
|
||||
server.save(order);
|
||||
|
||||
order = server.find(Order.class, order.getId());
|
||||
assertThat(order.getCustomer().getName()).isEqualTo("baz");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -86,7 +86,7 @@ public class Order implements Serializable {
|
||||
Date shipDate;
|
||||
|
||||
@NotNull
|
||||
@ManyToOne
|
||||
@ManyToOne(cascade = CascadeType.PERSIST)
|
||||
@JoinColumn(name = "kcustomer_id")
|
||||
@DocEmbedded(doc = "id,name")
|
||||
Customer customer;
|
||||
|
||||
Reference in New Issue
Block a user