У меня есть проект Grails, использующий Hibernate XML.Все файлы Hibernate находятся в файле conf / hibernate / [DomainName] .hbm.xml, а соответствующие исходные файлы домена находятся в файле src / groovy / [DomainName] .groovy. Я получаю:
Нет подписиМетод: static com.x.domain.Role.findByAuthority () применим для типов аргументов: (java.lang.String)
Похоже, что динамические искатели не в классе, хотя яне понимаю, почему нет.Есть предложения?
Пример XML:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.x.domain" default-lazy="false">
<class name="Role" table="x_roles" lazy="true">
<cache usage="read-write"/>
<comment>Role</comment>
<id name="id" type="long">
<generator class="native">
</generator>
</id>
<property name="description"/>
<property name="authority"/>
<set name="users" table="x_user_roles" lazy="false">
<cache usage="read-write"/>
<comment>User - Roles Associations</comment>
<key column="role_id"/>
<many-to-many column="user_id" class="com.x.domain.User"/>
</set>
</class>
</hibernate-mapping>
Пример домена:
package com.x.domain
/**
* Role class for Authority.
*/
class Role {
public static String ROLE_USER = "ROLE_USER"
public static String ROLE_ADMIN = "ROLE_ADMIN"
String description
String authority = 'ROLE_'
Set<User> users = new HashSet<User>();
public Role() {
}
public Role(String description, String authority) {
this.description = description
this.authority = this.authority + authority
}
static constraints = {
authority(blank: false)
description()
}
}