/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.jpa.test.mapping; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.OrderColumn; import org.hibernate.jpa.test.BaseEntityManagerFunctionalTestCase; import org.hibernate.testing.FailureExpected; import org.junit.Test; import static org.hibernate.testing.transaction.TransactionUtil.doInJPA; public class UnidirectionalOneToManyOrderColumnTest extends BaseEntityManagerFunctionalTestCase { @Test @FailureExpected( jiraKey = "HHH-11587" ) public void testQuote() { doInJPA( this::entityManagerFactory, entityManager -> { ParentData parent = new ParentData(); entityManager.persist( parent ); String[] childrenStr = new String[] { "One", "Two", "Three", "Four", "Five" }; for ( String str : childrenStr ) { ChildData child = new ChildData( str ); entityManager.persist( child ); parent.getChildren().add( child ); } entityManager.flush(); List<ChildData> children = parent.getChildren(); children.remove( 0 ); } ); } @Override protected Class<?>[] getAnnotatedClasses() { return new Class<?>[] { ParentData.class, ChildData.class }; } @Entity public static class ParentData { @Id @GeneratedValue long id; @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) @OrderColumn(name = "listOrder") private List<ChildData> children = new ArrayList<>(); public List<ChildData> getChildren() { return children; } } @Entity public static class ChildData { @Id @GeneratedValue long id; String childId; public ChildData() { } public ChildData(String id) { childId = id; } @Override public String toString() { return childId; } } }