У меня, похоже, этот вопрос много.Hibernate игнорирует класс и картографирование
Я устанавливаю новый класс. Я устанавливаю новое сопоставление hbm.xml и делаю его встроенным ресурсом. Я запустил свое приложение, и он скажет мне, что у меня есть несоответствие имен атрибутов. Обычно чаще всего возникает проблема с именем атрибута между классом и отображением. Конкретная ошибка «нет геттера/сеттера» для имени, как показано в отображении.
Но это не точка этого quesiton, я исправить это.
Теперь все опечатки фиксированы, но теперь спящий режим ничего не делает. Он просто полностью игнорирует интеграцию. Он не вызывает SQL-сервер, я знаю, потому что трачу его на стороне SQL-сервера. Я даже могу изменить имя представления, на которое указывает отображение, и это так, как будто мне даже не нужно сопоставление ~, потому что спящий режим просто игнорирует его и все, что касается этого класса.
Если я включил ведение журнала спящего режима (log4net) до уровня DEBUG. Другие объекты sql отображаются в журнале, но не в моем новом.
Как устранить эту проблему?
Раньше я иногда видел, как что-то не идеально подходит между отображением и сущностью SQL. И иногда, когда я получаю этих двух уток подряд, все начинает работать.
Опять же, как вы это устраняете? Что делает nHibernate для сопоставления сопоставления с SQL и где он находит то, что ему не нравится, он просто игнорирует его.
Это мой класс:
public class Nodes {
public virtual Int64 Id { get; set; }
public virtual Int64 NodeId { get; set; }
public virtual string Node { get; set; }
}
Это моя карта:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="false" assembly="Prj" namespace="Prj.Nodes.Domain" default-lazy="false">
<class name ="Nodes" table="dbo.vNodes" dynamic-update="false" lazy="false">
<cache usage="read-only"/>
<id name="Id" column="Id" type="Int64">
<generator class="native" />
</id>
<property name="NodeId" />
<property name="Node" />
</class>
</hibernate-mapping>
Это мой SQL:
create table Nodes
(
Id bigint identity(1,1) not null
, NodeId bigint not null
, Node varchar(10) null
)
insert into Nodes (NodeId, Node) values (100, 'Hello')
go
create view vNodes
as
select
Id
, NodeId
, Node
from Nodes with (NoLock)
go
И это мое приложение (метод в от a DOA):
using NHibernate;
public List<Nodes> LoadNodes()
{
ICriteria c = NHibernateSessionManager.Instance.GetSession().CreateCriteria(typeof(Nodes));
List<Nodes> n = c.List<Nodes>().ToList<Nodes>();
return n;
}
Отмечается о Nodes/vNodes в файле регистрации hibernate ~ даже на уровне DEBUG. Записываются другие методы и классы в одном и том же DAO. Но ничего об этом.
Я бы предпочел, чтобы некоторые ошибки помогли мне понять, что мне нужно исправить.
Я использую этот шаблон/архитектуру много, и он работает фантастически. Но во многих случаях, когда я начинаю новый класс/сущность/интеграцию, я сначала получаю уток подряд.
Уважение & оценка