Skip to content

Commit f602676

Browse files
gavinkingDavideD
authored andcommitted
failing test for #1384
1 parent e61d6e5 commit f602676

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive;
7+
8+
import io.vertx.ext.unit.TestContext;
9+
import org.junit.Ignore;
10+
import org.junit.Test;
11+
12+
import javax.persistence.CascadeType;
13+
import javax.persistence.Entity;
14+
import javax.persistence.FetchType;
15+
import javax.persistence.Id;
16+
import javax.persistence.IdClass;
17+
import javax.persistence.JoinColumn;
18+
import javax.persistence.ManyToOne;
19+
import javax.persistence.OneToMany;
20+
import java.io.Serializable;
21+
import java.util.ArrayList;
22+
import java.util.Collection;
23+
import java.util.List;
24+
25+
@Ignore
26+
public class CompositeIdManyToOneTest extends BaseReactiveTest {
27+
28+
@Override
29+
protected Collection<Class<?>> annotatedEntities() {
30+
return List.of( GroceryList.class, ShoppingItem.class);
31+
}
32+
33+
@Test
34+
public void reactivePersist(TestContext context) {
35+
36+
GroceryList gl = new GroceryList();
37+
gl.id = 4L;
38+
ShoppingItem si = new ShoppingItem();
39+
si.groceryList = gl;
40+
// si.groceryListId = gl.id;
41+
si.itemName = "Milk";
42+
si.itemCount = 2;
43+
gl.shoppingItems.add(si);
44+
45+
test(
46+
context,
47+
openSession()
48+
.thenCompose( s -> s.persist( gl )
49+
.thenCompose( v -> s.flush() )
50+
).thenCompose( v -> openSession() )
51+
.thenCompose( s -> s.createQuery("from ShoppingItem si where si.groceryList.id = :gl")
52+
.setParameter("gl", gl.id)
53+
.getResultList() )
54+
.thenAccept( list -> context.assertEquals( 1, list.size() ) )
55+
);
56+
}
57+
58+
@Entity(name = "GroceryList")
59+
public static class GroceryList implements Serializable {
60+
61+
@Id private Long id;
62+
63+
@OneToMany(mappedBy = "groceryList", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
64+
private List<ShoppingItem> shoppingItems = new ArrayList<>();
65+
66+
}
67+
68+
@Entity(name = "ShoppingItem")
69+
@IdClass(ShoppingItemId.class)
70+
public static class ShoppingItem implements Serializable {
71+
72+
// @Id Long groceryListId;
73+
@Id private String itemName;
74+
75+
@Id @ManyToOne
76+
@JoinColumn(name = "grocerylistid")
77+
private GroceryList groceryList;
78+
79+
80+
private int itemCount;
81+
82+
}
83+
84+
public static class ShoppingItemId implements Serializable {
85+
private String itemName;
86+
private GroceryList groceryList;
87+
}
88+
}

0 commit comments

Comments
 (0)