package org.tests.model.m2o; import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.annotation.Transactional; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class TestManyToOneAsOne extends BaseTestCase { @Test public void test_when_nonJdbcBatch() { runInserts(); } @Transactional(batchSize = 20) @Test public void test_when_jdbcBatch() { runInserts(); } private void runInserts() { Addr junk = new Addr(); junk.setName("junk"); Ebean.save(junk); Empl emp = new Empl(); emp.setName("My Name"); Addr address = new Addr(); address.setName("home"); emp.getAddresses().add(address); // if I do an interim Ebean.save here it works //Ebean.save(emp); address.setEmployee(emp); emp.setDefaultAddress(address); Ebean.save(emp); assertThat(emp.getDefaultAddress().getId()).isNotNull(); assertThat(address.getEmployee().getId()).isNotNull(); Empl foundEmpl = Ebean.find(Empl.class, emp.getId()); assertThat(foundEmpl.getDefaultAddress().getId()).isEqualTo(address.getId()); } }