Eclipselink以有序的方式读取复杂对象模型
-
23-09-2019 - |
题
我需要用Eclipselink以有序的方式阅读复杂的模型。该订单是曼陀罗的,因为它是一个巨大的数据库,我想在Jface TableView中具有数据库的一小部分输出。尝试将其重新排序在加载/Quering线程中需要太长并在LabelProvider中订购它会阻止UI线程太多时间,因此我认为如果可以使用Eclipselink,则数据库会订购它,它可能会给我提供我需要的性能。不幸的是,无法更改对象模型:-(
该模型类似:
@SuppressWarnings("serial")
@Entity
public class Thing implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;
private String name;
@OneToMany(cascade=CascadeType.ALL)
@PrivateOwned
private List<Property> properties = new ArrayList<Property>();
...
// getter and setter following here
}
public class Property implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;
@OneToOne
private Item item;
private String value;
...
// getter and setter following here
}
public class Item implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;
private String name;
....
// getter and setter following here
}
// Code end
在表视图中,Y轴或多或少使用查询创建
Query q = em.createQuery("SELECT m FROM Thing m ORDER BY m.name ASC");
将来自事物对象的“名称”属性作为标签。
在表视图中,X轴或多或少使用查询创建
Query q = em.createQuery("SELECT m FROM Item m ORDER BY m.name ASC");
将项目对象的“名称”属性作为标签。
每个单元都有值
Things.getProperties().get[x].getValue()
不幸的是,未订购“属性”列表,因此单元格值和X轴列编号(x)的组合不一定正确。因此,我需要以与订购X轴标签相同的方式订购列表“属性”。
这正是我不知道它是如何完成的。因此,查询对象的问题应返回列表“属性”“按名称ASC” 但 “项目”的对象。我的想法就像是与两个连接的查询一样。用财产和物品jo东西,但我无法以某种方式使它上班。
感谢您的帮助和解决这个谜语的想法。
解决方案
可能是对这个其他问题的答案可以帮助您:定义列表的顺序
我认为您可能必须使用另一个查询来获取每件事的属性订单列表。
就像是:
SELECT p FROM Property p WHERE p.thing = ?1 ORDER BY p.item.name
其他提示
您使用的是哪个版本的VB.NET版本。您正在使用的数组语法被添加在VS 2010(或可能2008)中添加,并且无法在旧版本上工作。如果是这样的话,那么尝试以下内容
GetTTCFTPini = New Object() { "Nothing" }
. 不隶属于 StackOverflow