我正在尝试将数据插入到Oracle数据库中,并且只有id字段被插入,其余的字段值为空值。
客户域类:
package com.app
class Customer {
def customerId
def customerName
def userName
def password
def email
def contactNum;
//def Address address;
static mapping = {
table name:"AACUSTOMER"
version false
customerId column:'ID', generator: 'sequence', params:[sequence:'AACUSTOMER_ID_SEQ']
customerName column:'CUSTOMER_NAME'
userName column:'USERNAME'
password column:'PASSWORD'
email column:'EMAIL'
contactNum column:'CONTACT_NUM'
}
}
customerController:
package com.app
class CustomerController {
def index() {
render(view:"addCustomer")
}
def addCustomer() {
def name = params.name
def username = params.username
def password = params.pwd
def repassword = params.rpwd
def email = params.email
def contactNum = params.contactnum
if(password==repassword) {
Customer customer = new Customer();
customer.setCustomerName(name)
customer.setUserName(username)
customer.setPassword(password)
customer.setEmail(email)
customer.setContactNum(contactNum)
println "${customer.getCustomerName()}"
customer.save(flush: true);
}
else {
render(message:"password should match")
}
}
}
DataSource.groovy中:
dataSource {
pooled = true
driverClassName = "oracle.jdbc.driver.OracleDriver"
username = "wmdev"
password = "wmdev"
url = "jdbc:oracle:thin:@172.20.1.196:1521/LCLWMSDEV01"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
// cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegiossnFactory' // Hibernate
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:oracle:thin:@172.20.1.196:1521/LCLWMSDEV01"
}
}
test {
dataSource {
dbCreate = "create-drop"
url = "jdbc:oracle:thin:@172.20.1.196:1521/LCLWMSDEV01"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:oracle:thin:@172.20.1.196:1521/LCLWMSDEV01"
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=false
validationQuery="SELECT 1"
jdbcInterceptors="ConnectionState"
}
}
}
}
答案 0 :(得分:1)
你也是如此" groovy"。必须键入GORM域类属性,并且具有GORM和Hibernate知道如何持久化的标准类型,或者您需要提供CustomType
实现来为其执行持久性工作。如果你没有输入类属性,它会被忽略,因为没有办法知道userName
可能是一个字符串(但它也可能是主键,需要与其他属性区别对待,或者customerId可能是Customer域类和客户表中的Long和外键,或者是String(仍然可能是PK / FK)。您需要提供一些信息来获取内容启动。