Как я могу добавить, что элемент к лениво загруженному набору в В спящем режиме, не заставляя набор загрузиться?

Используйте distinct on, если вы хотите одну строку для идентификатора:

select distint on (id) t.*
from t
order by id, year desc;
5
задан Chris R 7 May 2009 в 22:40
поделиться

2 ответа

One way to accomplish this would be to create a bidirectional association between the parent object (let's call it Parent) and the Event and configure your hibernate mappings such that the relationship is managed by Event.

To accomplish this, your Hibernate mappings would look something like:

<class name="Parent"...>
    ...
    <bag name="events" lazy="true" inverse="true"...>...</bag>
    ...
</class>

<class name="Event"...> 
    <many-to-one name="parent">
    ...
</class>

And your code would look something:

myEvent.setParent(parentObject);
eventDao.save(myEvent);

Hope this helps. Good luck.

4
ответ дан 14 December 2019 в 19:25
поделиться

Просто вставьте событие.

например:

@Entity
public Document
{
    @ManyToOne
    Set<Event> events;

    public void addEvent( Event event )
    {
        events.add( event )
    }

}


@Entity
public Event
{
    @id
    private long id;

    @OneToMany
    private Document  doc;

    ....
}

Вариант, который может читать все события:

document.add( event );
update( document );

Вариант, который не затрагивает коллекцию:

    event = new Event();
    event.setDocument( document );
    insert( event );

Затем, когда вы вызываете document.getEvents (), он также запросит и получит новое событие. Единственная проблема заключается в том, что коллекция уже была прочитана, а затем вы вставляете событие с помощью опции 2. В этом случае getEvents () не будет включать новое событие, поскольку коллекция уже была прочитана.

1
ответ дан 14 December 2019 в 19:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: