小编Jas*_*son的帖子

如何使用Hibernate模仿upsert行为?

我正在编写一个应用程序,将来自第三方数据源的实体同步到我们自己的架构中,其间有转换/映射步骤.我正在使用Hibernate来表示和持久化我们自己的架构中的实体.我遇到的一个问题是我的一个表上有一个唯一的多列键.我希望看到的行为类似于upsert:当Hibernate持久化实体并检测到唯一约束违规时,它会执行更新.我们正在使用MySQL,它提供了INSERT ... ON DUPLICATE KEY UPDATE语法,但我不确定如何或者是否可以使用Hibernate来使用它?

我想我总是可以尝试插入,如果我捕获异常做更新,但这似乎是hacky和次优.有关干净方式的任何提示吗?

java orm hibernate upsert

11
推荐指数
1
解决办法
1万
查看次数

如何设置Hadoop Streaming作业生成的输出文件的块大小?

看起来这应该很简单; 我的集群上有一组文件,其集群默认块大小为128MB.我有一个流处理作业来处理它们,我希望流作业创建的输出文件使用不同的块大小,特别是16MB.我认为以下内容可行:

$ HADOOP_HOME/bin/hadoop jar $ HADOOP_HOME/contrib/streaming/hadoop-0.20.1 + 152-streaming.jar -D dfs.block.size = 16777216 -D mapred.job.name ='Log Processor'-D mapred. reduce.tasks = 5 -D mapred.output.compress = true -D mapred.output.compression.type = BLOCK -input/production/beacon/vbox*/20110609/00/access_log -output/user/me/logprocess/20110609/00/access_log -mapper/bin/cat -outputformat org.apache.hadoop.mapred.SequenceFileOutputFormat

不爱,在/ user/me/logprocess/20110609/00/access_log中生成的文件都使用128MB集群的默认块大小.我也尝试在命令中用fs.local.block.size替换dfs.block.size,结果相同.有任何想法如何在流媒体工作中控制这个?

streaming hadoop

5
推荐指数
1
解决办法
1115
查看次数

Maven RPM插件无法在intellij中找到rpm命令

我有一个模块,我试图使用Maven RPM插件打包为RPM.当我从命令行运行mvn package时,它会按预期生成rpm.当我尝试从Intellij中运行包阶段时,似乎无法找到rpm命令:

[WARNING] /bin/sh: rpm: command not found
Run Code Online (Sandbox Code Playgroud)

......之后是:

[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.1-alpha-1:rpm (default-rpm) on project ve_hive_client: RPM query for default vendor returned: '127' executing '/bin/sh -c rpm -E '%{_host_vendor}'' -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

我的预感是我的rpm安装(/ usr/local/bin/rpm)在Intellij的PATH中不可用.知道如何添加它吗?

maven-2 intellij-idea

5
推荐指数
1
解决办法
7186
查看次数

标签 统计

hadoop ×1

hibernate ×1

intellij-idea ×1

java ×1

maven-2 ×1

orm ×1

streaming ×1

upsert ×1