如何使用jar中带有@grails.persistence.Entity注释的类
在我的grails项目中,我希望在公共jar文件中使用带有@grails.persistence.Entity注释的域类。但是,当我走上这一步的时候 我添加了hibernate.cfg.xml,如下所示如何使用jar中带有@grails.persistence.Entity注释的类,grails,grails-domain-class,Grails,Grails Domain Class,在我的grails项目中,我希望在公共jar文件中使用带有@grails.persistence.Entity注释的域类。但是,当我走上这一步的时候 我添加了hibernate.cfg.xml,如下所示 <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<!DOCTYPE hibernate-configuration SYSTEM
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping package="com.books" />
<mapping class="com.books.Book" />
</session-factory>
</hibernate-configuration>
显然,@实体不起作用。
此外,我的BuildConfig.groovy喜欢:
compile ('com.baoxian:baoxian-task-inscar-manager:1.2.5-SNAPSHOT')
{
excludes "org.grails", "org.slf4j", "xml-apis","mysql","org.hibernate","hsqldb","hibernate-annotations","org.quartz-scheduler","org.springframework"
}
com.baoxian:baoxian任务inscar manager:1.2.5-SNAPSHOT就是我的域类的来源
这是我第一次问这个问题^_^ 如果我错过了一个更简单/更好的问题解决方案,请有人纠正我
@一道620C,恐怕你现在做的行不通
我推荐两种解决方案(对于您似乎想做的事情,我通常选择第二种方案):
1) JPA实体注释而非Grails实体注释
如果您想遵循这些文档,我相信您的JPA类必须驻留在Grails项目中(JPA注释,而不是Grails@Entity注释)
最简单的方法可能是JPA插件。如果仍然需要动态查找器,请跳到选项2)
2) 使用Grails注入动态查找程序
如果希望从外部jar(非grails项目)导入带有grails注释的实体,则需要执行一些额外的步骤来注入动态查找程序(findAll等)
由于这可能是一篇包含所有细节的长篇文章,我将很快制作一个关于如何做的视频(提示:)
然而,这里有一个简短的答案:
- 创建一个Groovy项目(我通常使用Gradle作为构建系统)李>
- 依赖于Grails Gorm、Grails bootstrap和少量 其他(slf4j、弹簧等)
- 使用Spring配置(XML或Grails Spring DSL)注入Gorm会话工厂。使用withNewSession或withTransaction或使用服务,您可以使用简单的主类->加载Springbeans以设置Gorm->调用域对象来快速测试动态查找程序
- 当您构建jar时,编译阶段将增强您的实体以注入动态Gorm方法
- 创建一个Groovy项目(我通常使用Gradle作为构建系统)李>
- 依赖于Grails Gorm、Grails bootstrap和少量 其他(slf4j、弹簧等)
- 使用Spring配置(XML或Grails Spring DSL)注入Gorm会话工厂。使用withNewSession或withTransaction或使用服务,您可以使用简单的主类->加载Springbeans以设置Gorm->调用域对象来快速测试动态查找程序
- 当您构建jar时,编译阶段将增强您的实体以注入动态Gorm方法
compile ('com.baoxian:baoxian-task-inscar-manager:1.2.5-SNAPSHOT')
{
excludes "org.grails", "org.slf4j", "xml-apis","mysql","org.hibernate","hsqldb","hibernate-annotations","org.quartz-scheduler","org.springframework"
}