У меня есть две таблицы, как показано ниже. Отдельная сущность для первичных ключей
«Пользовательский Acc» - это данные пользователя и данные пользователя (имя пользователя) в отдельной таблице с именем login.Когда я сгенерировал объекты в NetBeans IDE, для таблицы входа в систему (базы данных) было 2 таблицы. Один сгенерированный объект - это «Логин», другой - «Вход». Объект .Login имеет ссылку на объект LoginId и UserAcc. Элемент LoginId имеет имя пользователя и пароль, которые были в таблице базы данных входа. Усервер имеет первичный ключ, который является INT для каждого пользователя. Этот ключ является внешним ключом таблицы входа.
Теперь я хочу проверить пользователя @ loging. Как я это делаю, я создаю экземпляр LoginId и задаю имя пользователя и пароль, а затем проверяю любой объект с таким же именем LoginId. Вот код.
uName и pw являются строками и взяты из пользовательского ввода.
LoginId id=new LoginId(uName, pw);
Session ses = NewHibernateUtil.getSessionFactory().openSession();
Criteria crit = ses.createCriteria(Login.class);
crit.add(Restrictions.eq("id", id));
Entities.Login log = (Entities.Login)crit.uniqueResult();
Но Eventhough есть существующие имена пользователей и пароли, соответствующие с заданным именем и паролем, то log
всегда нуль.
Кто-нибудь скажет мне, где я должен проверить и в чем проблема. Спасибо. И еще моя проблема заключается в том, что отдельный объект («LoginId») создается для двух столбцов (первичных ключей) в одной таблице базы данных и другого объекта для этой таблицы базы данных.
для входа;
<hibernate-mapping>
<class name="Entities.Login" table="login" catalog="pcw">
<composite-id name="id" class="Entities.LoginId">
<key-property name="uname" type="string">
<column name="uname" length="10" />
</key-property>
<key-property name="pw" type="string">
<column name="pw" length="10" />
</key-property>
</composite-id>
<many-to-one name="useracc" class="Entities.Useracc" fetch="select">
<column name="UserAcc_uid" not-null="true" />
</many-to-one>
</class>
для UserAcc:
<hibernate-mapping>
<class name="Entities.Useracc" table="useracc" catalog="pcw">
<id name="uid" type="java.lang.Integer">
<column name="uid" />
<generator class="identity" />
</id>
<property name="fname" type="string">
<column name="fname" length="45" />
</property>
<property name="sname" type="string">
<column name="sname" length="45" />
</property>
<property name="RDate" type="date">
<column name="r_date" length="10" />
</property>
<property name="street" type="string">
<column name="street" length="45" />
</property>
<property name="city" type="string">
<column name="city" length="45" />
</property>
<property name="email" type="string">
<column name="email" length="45" />
</property>
<property name="tel" type="string">
<column name="tel" length="45" />
</property>
<set name="comments" inverse="true" cascade="all">
<key>
<column name="UserAcc_uid" not-null="true" />
</key>
<one-to-many class="Entities.Comment" />
</set>
<set name="logins" inverse="true" cascade="all">
<key>
<column name="UserAcc_uid" not-null="true" />
</key>
<one-to-many class="Entities.Login" />
</set>
</class>
Вы можете пожалуйста, разместите сопоставление между этими двумя классами? –
да, конечно. Спасибо за внимание. –
Мой главный вопрос: в одной из моих таблиц есть 2 первичных ключа. когда классы объектов генерируются объектом Netbeans, IDE ONE SEPERate создается, включая 2 первичных ключа. Затем объект, представляющий таблицу, ссылается на эту отдельную сущность, а другие feilds представляют столбцы таблицы. Я нахожу, почему существует отдельный класс сущностей? –