Будьте в спящем режиме @OneToMany с mappedBy (родительский ребенок) проблема кэша и отношения

Другое решение состояло бы в том, чтобы сделать что-то вроде этого:

from datetime import datetime

def last_day_of_month(year, month):
    """ Work out the last day of the month """
    last_days = [31, 30, 29, 28, 27]
    for i in last_days:
        try:
            end = datetime(year, month, i)
        except ValueError:
            continue
        else:
            return end.date()
    return None

И использование функция как это:

>>> 
>>> last_day_of_month(2008, 2)
datetime.date(2008, 2, 29)
>>> last_day_of_month(2009, 2)
datetime.date(2009, 2, 28)
>>> last_day_of_month(2008, 11)
datetime.date(2008, 11, 30)
>>> last_day_of_month(2008, 12)
datetime.date(2008, 12, 31)
8
задан artemb 30 July 2009 в 13:00
поделиться

1 ответ

Большинство ORM будут вести себя подобным образом.

Объект в кэше не обновляется из базы данных ( дополнительно читать то, что не нужно). Также считайте объектную модель и постоянство отдельными. т.е. поддерживайте согласованность своей объектной модели и не полагайтесь на механизм сохранения, который сделает это за вас.

Поэтому, если вы хотите, чтобы объект был добавлен в коллекцию, сделайте это в коде "setParent".

] Лучшая практика в этом случае - заставить одну сторону отношений делать всю работу и позволить другой стороне отложить ее. Также я бы предложил использовать доступ к полю, а не к методу, таким образом вы можете настраивать методы с большей гибкостью.

Добавьте метод к родительскому элементу с именем addChild

 public void addChild(Child child) {
    child.setParent0(this);
    getChildren().add(individualNeed);
 }

, а затем сделайте setParent в Child:

public void setParent(Parent parent) {
   parent.addChild(child);
}

setParent0 в Child является свойство stter для родительского элемента для дочернего.

public void setParent0(Parent parent) {
   this.parent = parent;
}

Я бы также предложил, чтобы метод getChildren возвращал неизменяемую коллекцию, чтобы разработчики не

8
ответ дан 5 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

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