我正在使用Jodd DbOom来管理我的查询,它真的很棒。但现在我正面临一个无证的情况。
我有一个返回对象列表(A)的查询,每个 A 都有一个对象列表(B),每个 B 都与其他对象(C、D、E 等)连接。问题是该类JoinHintResolver
没有在 B 对象上设置值 C、D、E。B 对象在 A 对象上正确设置。
以下是重现错误的测试方法。其他使用的类(Girl
, BadBoy
)来自 Jodd 测试包。
public void testHintsList() {
Room room = new Room();
Girl girl = new Girl();
BadBoy badBoy = new BadBoy();
Object[] data = new Object[] { room, badBoy, girl };
JoinHintResolver jhr = new JoinHintResolver();
Object[] result = jhr.join(data, "room, room.boys, room.boys.girl");
assertEquals(1, result.length);
assertTrue(result[0] instanceof Room);
room = (Room) result[0];
badBoy = room.getBoys().get(0);
assertEquals(girl, badBoy.girl);
}
public class Room {
private Long id;
private List<BadBoy> boys;
public Room() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public List<BadBoy> getBoys() {
return boys;
}
public void setBoys(List<BadBoy> boys) {
this.boys = boys;
}
}
文档没有这样的例子,谷歌也没有。所以我不知道是我做错了什么,还是乔德没有为这种情况做好准备。
我如何设置提示以便 Jodd 正确设置值?