Nhibernate как избавиться от прокси и иметь конкретный при загрузке ссылки - PullRequest
0 голосов
/ 06 июля 2011

У меня есть Предмет с отношением 1: m к TreeNode. TreeNode имеет ссылку на родительский узел ... и имеет ссылку на другой объект.

TreeNode и его отношение хранятся в кэше второго уровня.

Моя проблема: Если я использую ленивый по умолчанию, то эти TreeNode будут загружены из кэша второго уровня, если я путешествую по родительскому.

Но Он будет загружен как прокси-сервер, и я должен иметь его как конкретный класс (я вызываю функцию для этого объекта и ассоциации более 2000 раз).

Если я установлю lazy = false в классе TreeNode, определите: Чем hibernate загрузит все ссылки на него в соединении, и я не получу выгоду от кэша второго уровня.

Могу ли я определить, что объект будет загружен как конкретный, и ассоциация с ним при загрузке (путем вызова ассоциации) также будет загружена как конкретный?

Спасибо

Ответы [ 3 ]

0 голосов
/ 20 июля 2011

, если вы не хотите, чтобы прокси устанавливал lazy = false на уровне класса или создавал клон на объекте.

0 голосов
/ 16 апреля 2013

Посмотрите, подходит ли вам lazy = "no-proxy", как объяснил Ayende Rahien в следующем сообщении в блоге:

Новая функция NHibernate: ассоциации без прокси

0 голосов
/ 06 июля 2011

Зачем вам нужен конкретный класс?

В любом случае, как получить экземпляр без прокси: http://sessionfactory.blogspot.com/2010/08/hacking-lazy-loaded-inheritance.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...