我一直在使用 Hibernate 对基于 MySQL 的应用程序的功能测试部分使用 H2。我终于受够了,我决定主要使用 jOOQ,这样我仍然可以从底层数据库中抽象出自己。
我的问题是我根本不喜欢 jOOQ 做的这种代码生成事情,因为我还没有看到在多个配置文件中正确设置它的示例,也不喜欢连接到数据库作为我的构建。总的来说,这是一个非常糟糕的设置,我不想花一个上午的时间来意识到它非常可怕,我不想在项目中使用它。
我正在使用 tableByName() 和 fieldByName(),我认为这是一个很好的解决方案,但我遇到了 H2 将所有内容都设为大写的问题。
如果我执行类似 Query deleteInclusiveQuery = jooqContext.delete(tableByName("inclusive_test"))... 的操作,我会发现未找到表 inclusive_test。请注意,这与连接延迟或关闭配置无关。
我尝试更改连接以使用 ;DATABASE_TO_UPPER=false 但后来我发现找不到字段(我认为它会转换所有模式)。
我不确定 H2 是否无法创建非大写模式,或者我在这方面失败了。如果是前者,那么我希望 jOOQ 也将查询中的表名和字段名大写。
示例输出为:
从“inclusive_test”中删除“segment_id”(从“segment”中选择“id”,其中“external_taxonomy_id”= 1)
如果没有像这样创建 H2 模式,这将是正确的,但是我正在创建模式的查询专门将其设置为小写,但最终它最终变成了大写,Hibernate 似乎理解或解决了这一点,但不是 jOOQ
无论如何,我想问一下是否有解决方案,因为我现在非常失望,我正在考虑放弃无法使用 Hibernate 的测试。
欢迎任何不使用代码生成功能的解决方案。
最佳答案
My problem is that I don't like this code generation thing jOOQ does at all since I'm yet to see an example with it properly set up in multiple profiles, also don't like connecting to the database as part of my build. It's overall quite a nasty set-up I don't to spend a morning doing to realise is very horrible and I don't want it in the project.
如果您这样做,您将错过大量很棒的 jOOQ 功能。看到这个非常有趣的讨论关于为什么在构建中有一个数据库连接不是那么糟糕的基本原理:
无论如何,不要太快感到沮丧。事情之所以按照现在的方式进行,有几个原因。 DSL.fieldByName()创建区分大小写的列。如果您提供小写的 "inclusive_test" 列,则 jOOQ 将默认使用引号和小写形式呈现名称。
您有多种选择:
`inclusive_test` 和 H2 中的 "inclusive_test"。RenderNameStyle.AS_IS 来覆盖它DSL.field()而不是 DSL.fieldByName() 。它将允许您完全控制您的 SQL 字符串。顺便说一句,我认为我们会更改手册以建议新用户使用 DSL.field() 而不是 DSL.fieldByName()。这整个区分大小写在过去引起了太多问题。这将通过 Issue #3218 完成
关于java - 没有 codegen 的 jOOQ H2 区分大小写问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23362782/
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub