当前位置: 首页 > 知识库问答 >
问题:

带HIbernate的JavaFX TableView

易自珍
2023-03-14

我正在尝试使用Hibernate开发JavaFX桌面应用程序。在我的数据模型中,我有两个实体(Player、Team)。每个玩家都属于一个团队。

玩家

id: int firstName: String lastName: Stringref_Team: int

团队

id: int名称:字符串

在我的应用程序中,目前每个实体有两个表,一切正常。但现在我想更进一步,在团队实体的TableView中,我打算添加一列“球员计数”。

我知道如何绑定TableColumn,例如firstNameCol。setCellValueFactory((数据)-

但在我的团队实体中,没有计算球员数量的属性。有没有办法绑定numberOfPlayerCol?

共有1个答案

宫晟
2023-03-14

假设您有一个可观察列表

ObservableList<Player> allPlayers = ... ;

TableView<Team> table = new TableView<>();

TableColumn<Team, Number> playerCountCol = new TableColumn<>("Players count");
playerCountCol.setCellValueFactory(cellData -> 
    Bindings.createLongBinding(() -> 
        allPlayers.stream()
        .filter(player -> player.getTeamId() == cellData.getValue().getId())
        .collect(Collectors.counting()),
        allPlayers));

这是一种相当残酷的方法,只要有需要,它就会计算一切。如果遇到性能问题,可能需要做一些更复杂的事情。不过,这应该适用于中等规模的数据集。

这是一个快速示例的链接(此处的Player直接引用Team,而不是与其id匹配的字段,但想法是一样的)。

 类似资料:
  • 问题内容: 我是初次使用Hibernate和Java。我收到以下异常。我在网上找到的有关此错误的信息似乎没有帮助。有任何想法吗?例外: 被称为的地方: 映射到数据库表的类: 谢谢, 谭 问题答案: 尝试在文件中的下添加元素。 我在JPA / EntityManager上所做的工作还不止这些,所以我不知道是否有添加整个程序包的方法。AFAIK在使用时,必须直接指定每个持久类。

  • 问题内容: 我正在使用Hibernate,EJB和Restfull Web服务。我在下面有这个例外,我不知道该怎么办。 问题答案: AbstractMethodError通常是由不兼容的二进制文件引起的;对于此特定错误,有一个打开的(未解决的)故障单,但带有一些注释 例如,原始问题报告提到了一个问题,该问题调用EntityManagerFactory.createEntityManager(jav

  • 问题内容: 根据Hibernate文档的这一部分,我应该能够查询HQL中的任何Java类。 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql- polymorphism 不幸的是,当我运行此查询时… 我收到消息“ [未映射事务[从事务trans,其中trans.envelopeId =

  • 问题内容: 有一种简单的方法可以将hibernate设置为对每个带有postgres的表使用不同的主键ID。我试图在数据源中使用postgres方言: 但这是行不通的。谢谢 问题答案: 简短的答案是没有,没有 简单的 方法可以做到这一点。但是,我找到了一种有效的解决方案。基本上,您需要实现自定义方言。这是一个实现(请在注释中注明实现的原始来源)。 上述实施应当存储为下你的Grails项目中。 接下

  • 问题内容: 有没有一种方法可以像我向它们添加(NOLOCK)提示一样运行这些查询? 问题答案: 如果您确实需要此功能,则可以执行以下操作: 这与nolock相同。 在执行此操作之前,请认真思考是否要进行脏读。人们大多数时候这样做是因为这是他们一直以来所做的事情,而不是因为这是正确的事情。特别是,这不适用于缓存。 实际上,该线程会涉及一些问题。在决定之前,请仔细阅读。

  • 我在集成Hibernate和EHCache时遇到了一些问题。我使用的是Hibernate 3.2.7 GA、Hibernate Annotation 3.2.1 GA、hibernate-commons-annotations 3.2.0.final、net.sf.ehcache 2.2.0和Spring Version3.2.4.release。当我运行测试用例时,我得到了net.sf.ehca