У меня есть две таблицы, одна UserDetails и другая UserRoles.Я сопоставил их следующим образом.Эта операция вставки прошла нормально, но когда я пытаюсь получить список ролей из пользовательского объекта, возникает исключение.Я определил, что SQL, сгенерированный Hibernate, имеет столбец USERCODE как User_id в предложении whare.Как преодолеть эту проблему.Пожалуйста, помогите мне.
Класс пользователя:
public virtual string Code { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string MiddleName { get; set; }
.......
public virtual IList<UserRole> Roles { get; set; }
public virtual IList<UserResource> Resources { get; set; }
Карта пользователя:
Table("USER_DETAILS");
Schema("PROJECTDOCS");
Id(x => x.Code).Column("CODE").GeneratedBy.Assigned();
Map(x => x.FirstName).Column("FIRSTNAME").Not.Nullable().Length(100);
Map(x => x.LastName).Column("LASTNAME").Length(100).Not.Nullable();
Map(x => x.MiddleName).Column("MIDDLENAME").Length(100);
...
HasMany(x => x.Roles).Inverse().Cascade.All();
Класс пользовательской роли:
public virtual long UserRoleID { get; set; }
public virtual User UserCode { get; set; }
public virtual long RoleID { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime CreatedDate { get; set; }
public virtual string UpdatedBy { get; set; }
public virtual DateTime UpdatedDate { get; set; }
Карта пользовательской роли:
Table("USER_ROLES");
Schema("PROJECTDOCS");
Id(x => x.UserRoleID).Column("URID").GeneratedBy.Increment();
Map(x => x.RoleID).Column("ROLEID").Not.Nullable();
Map(x => x.CreatedBy).Column("CREATEDBY").Not.Nullable().Length(36);
Map(x => x.CreatedDate).Column("CREATEDDATE").Not.Nullable().Default(DateTime.Now.ToString());
Map(x => x.UpdatedBy).Column("UPDATEDBY").Not.Nullable().Length(36);
Map(x => x.UpdatedDate).Column("UPDATEDDATE").Not.Nullable().Default(DateTime.Now.ToString());
References(x => x.UserCode).Column("USERCODE");
Окончательный сгенерированный SQL был:
[SQL: SELECT role0_.User_id как User8_1_, role0_.URID как URID1_, role0_.URID как URID2_0_, role0_.ROLEID как ROLEID2_0_, roles0_.CREATEDBY, как CREATEDBY2_0_, roles0_.CREATEDDATE как CREATEDD4_2_0_, roles0_.UPDATEDBY как UPDATEDBY2_0_, roles0_.UPDATEDDATE как UPDATEDD6_2_0_, roles0_.USERCODE как USERCODE2_0_ ИЗ PROJECTDOCS.USER_ROLES roles0_ ГДЕ roles0_.User_id =?]
Название столбца, выделенное жирным шрифтом, - вот что происходит.
Заранее спасибо, Прадип