mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
44 lines
1.4 KiB
Java
44 lines
1.4 KiB
Java
package org.tests.o2m;
|
|
|
|
import io.ebean.DB;
|
|
import io.ebean.test.LoggedSql;
|
|
import io.ebean.xtest.BaseTestCase;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.tests.o2m.dm.GoodsEntity;
|
|
import org.tests.o2m.dm.WorkflowEntity;
|
|
import org.tests.o2m.dm.WorkflowOperationEntity;
|
|
|
|
import java.util.List;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
public class StatefulO2MSoftDelete extends BaseTestCase {
|
|
@Test
|
|
void statefulUpdateShouldntDelete() {
|
|
var bomGoods = new GoodsEntity();
|
|
DB.save(bomGoods);
|
|
|
|
var goods = new GoodsEntity();
|
|
var workflow = new WorkflowEntity();
|
|
var operation1 = new WorkflowOperationEntity();
|
|
operation1.setName("operation 1");
|
|
goods.setWorkflowEntity(workflow);
|
|
workflow.setOperations(List.of(operation1));
|
|
|
|
DB.save(goods);
|
|
|
|
LoggedSql.start();
|
|
// replace workflow entity
|
|
var goodsFromDB = DB.find(GoodsEntity.class, goods.getId());
|
|
goodsFromDB.setWorkflowEntity(new WorkflowEntity());
|
|
|
|
DB.update(goodsFromDB);
|
|
var updateSql = LoggedSql.stop();
|
|
updateSql.forEach(sql -> assertThat(sql).doesNotContain("delete from workflow_entity"));
|
|
if (isH2()) {
|
|
assertThat(updateSql.get(4)).contains("update workflow_operation_entity set deleted=true where workflow_id = ?");
|
|
assertThat(updateSql.get(6)).contains("update workflow_entity set when_modified=?, deleted=? where id=?");
|
|
}
|
|
}
|
|
}
|