我在尝试将 Grails 应用程序与 AS400/DB2 数据库放在一起时遇到了一个问题。我无法映射大部分文件,因为它们没有可用作 ID 的唯一字段。即使他们这样做,它们也是基于文本的字段,而不是可以转换为长类型的格式。(我不明白为什么 PK 必须是长数据类型?如果你想我们为 pk 提供一个序列或 AI 是有意义的,但如果你只需要一个唯一的密钥怎么办?我在这里遗漏了什么吗?)
我想知道是否可以保留我设置的数据源,并将其用于直接 SQL 访问数据库,而不必使用域对象?
我看到的是将域对象设置为瞬态。但我不知道你是否仍然可以在没有 id 字段的情况下做类似的事情。有谁知道这是如何工作的?
有任何想法吗?
谢谢,乔恩
我试图弄清楚为什么Java Print API无法处理宽度大于高度的纸张尺寸.MediaSize类及其所有内部类只有高度大于宽度的大小.我正在尝试打印4"x 2"的标签,但我写的打印作业总是在纸上将其转换为2"x 2".
我在网上发现了一些事情,表明高度必须始终大于宽度,并且已经在Java源代码中看到了这一点,并附带了消息,但事实并非如此.
有谁知道这是为什么?
在我的应用程序中,我有一个用户域对象,其中包含一些字段,包括密码字段.密码字段是使用JASYPT的加密字符串.出于开发目的,我在启动时创建一个硬编码的新用户.它看起来像这样:
User user = new User(
userId:"user1", userFname:"Joe",
userLname:"Blow", userMinit:"A",
userEmail:"joe@blow.com", userPword:"password").save()
Run Code Online (Sandbox Code Playgroud)
当调用save()时,我相信在后台调用hibernate saveOrUpdate().它将新域对象字段值与现有域对象字段值进行比较,以确定是否应将记录插入到数据库中,或者是否应仅更新已存在的记录.
由于密码字段始终是一个新值,因为JASYPT加密它每次都插入一个新记录.
INSERT INTO USER VALUES(1,'joe@blow.com',
'Joe','user1','Blow','A','','','',
'gIkUvM9b6d5vrEhkKzqKz0U7uxqRpZFhiQrrBTDbKX0=')
INSERT INTO USER VALUES(2,'joe@blow.com',
'Joe','user1','Blow','A','','','',
'yap0S0mCb2CpGngcANpSWoLqlL6SozLYK4WbKYHSVEw=')
Run Code Online (Sandbox Code Playgroud)
这是Domain类:
@Table(name="user")
class User {
String userId
String userFname
String userLname
String userMinit
String userEmail
String userPword
String userMisc1 = ""
String userMisc2 = ""
String userMisc3 = ""
public User(){};
static mapping = {
version false
columns {
userId column:'user_id'
userFname column:'user_fname'
userLname column:'user_lname'
userMinit column:'user_minit'
userEmail column:'user_email'
userPword column:'user_pword'
userMisc1 column:'user_misc1' …Run Code Online (Sandbox Code Playgroud)