Entity not visible in table

Hi.

I have a running instance of an application, for which one of the entities do not show anymore in browser. Entity can be listed in entity inspector, it is not deleted nor invisible and of course the browser table has no filtering.
Do you have any idea of what that could be? I am totally puzzled.

Thanks a lot.

Update on the matter, an interesting thing.
If i set the display at 20 or 50 lines, only three entities are shown.
If i set display limit at 100 lines, the four entities are displayed.
So, it seems that there is a weird bug in the limit selection on my specific configuration, but can’t get to what that could be.

Any idea?

Hi,
I have met similar glitches in my experience. I am aware of two reasons:

  1. Sometimes you need to add “distinct” to your select JPQL statement:
    https://doc.cuba-platform.com/manual-7.1/query_with_distinct.html
    It may be necessary if you use one-to-many sub-collections of the target entity for filtering (in filter or access group constraints).

select distinct f from demo_Foo f

  1. There may be inconsistencies in your data model that lead to JPA framework removing duplicate rows in result set.
    For example: You have two entities: Driver and Vehicle. You think that relation between them is One-to-One (VEHICLE table has DRIVER_ID column).
    But in the database it happens that there are multiple Vehicle referencing the same Driver entity.
    When result set is loaded from the database, there will be duplicate Driver’s referencing different Vehicle entities, and duplicates will be stripped.

Such inconsistencies may be debugged by enabling EclipseLink SQL logging and investigating raw SQL:
https://doc.cuba-platform.com/manual-7.1/logging_useful_loggers.html

Let us know what was the reason in your case, it is curious.

Also it may be useful to put breakpoint here:
com.haulmont.cuba.core.app.RdbmsStore#executeQuery

and look how many entities are returned by the query.getResultList() call (the same amount as requested row-count or less than should be).