几天来,我一直在尝试从我的Grails应用程序连接到PostgreSQL数据库的旧表,但没有成功。
我想要的是
我想要的只是从我的 grails 应用程序中查询这个表(其中存储了用户),以检查登录凭据。用户登录 grails 应用程序,我必须检查提供的密码是否与存储在此表中的密码匹配。
由于我尝试访问的表称为“ user ”(这是一个关键字),因此我创建了一个别名视图“ users ”,这是我在 grails 中使用的,只是为了避免可能出现的问题。
下面我提供有关我的问题的其他信息,希望有人可以帮助我。
手动查询结果
在控制台中直接从 postgres执行select * from public.users
时,我得到以下结果:
id | name | apikey | created | about | openid | password | fullname | email | reset_key
--------------------------------------+-----------+---------------------------+----------------------------+-------+--------+-------------------------------+----------+------------------------------+-----------
ef8661be-6627-40e3-8b58-e78f3363680f | logged_in | this-is-an-api-key-sample | 2012-12-11 14:17:28.949515 | | | | | |
0c49f23a-350c-43d9-a1ec-34057125acd7 | visitor | this-is-an-api-key-sample | 2012-12-11 14:17:28.953194 | | | | | |
591798d4-f85e-4bc2-a352-a41635c83653 | admin | this-is-an-api-key-sample | 2013-04-10 15:08:47.104103 | | | thisisanencodedpasswordsample | admin | username@email.com |
25c8b15f-ec67-472b-b551-3c7112d4a2db | grails | this-is-an-api-key-sample | 2013-04-10 15:12:44.257821 | | | thisisanencodedpasswordsample | grails | username@email.com |
从我的 grails 应用程序中,我有以下文件:
用户域类
class User {
String user_id
String name
String apikey
String created
String about
String openid
String password
String fullname
String email
String resetKey
static mapping = {
version false
autoTimestamp false
table "public.users"
resetKey column: "reset_key"
created column: "created", sqlType: "timestamp without time zone"
user_id column: "id", sqlType: "text"
id name: 'user_id'
}
}
数据源
dataSource {
pooled = true
dbCreate = "validate"
logSql = true
url: "jdbc:postgresql://192.168.1.100:5432/ecodata"
driverClassName = "org.postgresql.Driver"
dialect = net.sf.hibernate.dialect.PostgreSQLDialect
username = "ecodata"
password = "******"
}
POM 依赖项
<dependency>
<groupId>org.grails.plugins</groupId>
<artifactId>hibernate</artifactId>
<version>2.1.2</version>
<scope>runtime</scope>
<type>zip</type>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
<scope>runtime</scope>
</dependency>
我在启动 grails 应用程序时遇到的错误是:
[...] 引起:org.hibernate.HibernateException:缺少表:用户 [...]
我希望有人可以帮助解决这个问题。提前致谢。
问候