package com.avaje.tests.basic; import org.junit.Assert; import org.junit.Test; import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.tests.model.embedded.EMain; public class TestDynamicUpdate extends BaseTestCase { @Test public void testUpdate() { // insert EMain b = new EMain(); b.setName("aaa"); b.getEmbeddable().setDescription("123"); EbeanServer server = Ebean.getServer(null); server.save(b); Assert.assertNotNull(b.getId()); // reload object und update the name EMain b2 = server.find(EMain.class, b.getId()); b2.getEmbeddable().setDescription("ABC"); server.save(b2); server.beginTransaction(); try { EMain b3 = server.find(EMain.class, b.getId()); Assert.assertEquals("ABC", b3.getEmbeddable().getDescription()); } finally { server.endTransaction(); } EMain b4 = server.find(EMain.class, b.getId()); b4.setName("bbb"); b4.getEmbeddable().setDescription("123"); server.save(b4); EMain b5 = server.find(EMain.class, b.getId()); Assert.assertEquals("123", b5.getEmbeddable().getDescription()); } }