Я создал многозначное отображение в спящем режиме. Ниже приводится настройкаОбратитесь к внешнему ключу в Hibernate, который не имеет свойства
<many-to-one name="groups" class = "Groups" column="cgid" unique="true" not-null="true" cascade="all"/>
В mysql создается таблица с другим столбцом cgid.
mysql> describe CONTACT
-> ;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| IDCONTACT | bigint(20) | NO | PRI | NULL | |
| FIRSTNAME | varchar(255) | YES | | NULL | |
| LASTNAME | varchar(255) | YES | | NULL | |
| EMAIL | varchar(255) | YES | | NULL | |
| addressId | bigint(20) | NO | UNI | NULL | |
| cgid | bigint(20) | NO | UNI | NULL | |
+-----------+--------------+------+-----+---------+-------+
Теперь мне нужно запросить на основе имени cgid.
queryString = "from Contact where cgid = :id";
query = session.createQuery(queryString);
query.setParameter("id", gd.getGid());
contactl = query.list();
Hibernate постоянно жалуется на то
could not resolve property: cgid of: domain.Contact [from domain.Contact c where c.cgid = :id]
Не уверен, что можно сделать, чтобы решить эту проблему. Какие-либо предложения ?
Только атрибуты @Entity, разрешенные в HQL, а не фактические имена столбцов БД. Либо создайте новый атрибут для 'cgid' (или), используя собственный SQL-запрос. – K139