Grails:无法从Hibernate注释类继承
我当前的项目需要在某些域字段上使用Hibernate的Grails:无法从Hibernate注释类继承,hibernate,grails,inheritance,gorm,Hibernate,Grails,Inheritance,Gorm,我当前的项目需要在某些域字段上使用Hibernate的@ColumnTransformer,但我无法使Grails域类继承自Hibernate注释的域类 我得到一个映射异常:未知实体:BaseBook 以下是代码摘录: Grails域类 关联和验证约束写在这里 //grails-app/domain/Book.groovy class Book extends BaseBook { String nom static hasMany = [pages:Page] stati
@ColumnTransformer
,但我无法使Grails域类继承自Hibernate注释的域类
我得到一个映射异常:未知实体:BaseBook
以下是代码摘录:
Grails域类
关联和验证约束写在这里
//grails-app/domain/Book.groovy
class Book extends BaseBook {
String nom
static hasMany = [pages:Page]
static constraints = {
nom(nullable:true)
}
//static mapWith = "none"
static mapping ={
table "book"
}
}
Hibernate注释基类
此处编写的自定义列转换(加密/解密)(无法在常规Grails域类中设置)
休眠映射
它声明BaseBook和BasePage(也需要按页面扩展)
如果我要这么做。我将使用GORM事件beforeInsert/beforeUpdate和onLoad 有关更多信息,请参阅:
- 事件
- 继承
// src/groovy/BaseBook.groovy
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.Id
import javax.persistence.Version
import javax.persistence.Column
import org.hibernate.annotations.ColumnTransformer
@Entity
class BaseBook {
@Id @GeneratedValue
Long id
@Version
Long version
@ColumnTransformer(read = "AES_DECRYPT(title, 'password')",
write = "AES_ENCRYPT(?, 'password')")
@Column(columnDefinition = "VARBINARY(500)")
String title
}
<!-- grails-app/conf/hibernate.cfg.xml -->
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
'-//Hibernate/Hibernate Configuration DTD 3.0//EN'
'http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd'>
<hibernate-configuration>
<session-factory>
<mapping class='BaseBook' />
<mapping class='BasePage' />
</session-factory>
</hibernate-configuration>