小编Ami*_*mit的帖子

Hector与Astyanax为Cassandra

我们正在以Cassandra作为数据库开始一个新的java web项目.该团队对RDBMS/JPA/Hibernate/Spring非常有经验,但对NoSQL世界来说却是一个新手.我们希望以尽可能简单的设置开始开发. Hector似乎是连接Cassandra的首选和受欢迎的选择.但是,Netflix最近提供了Astyanax,它起源于Hector.使用这两种技术的人可以分享他们的经验吗?我正在寻找简单的设置,良好的文档和简单/干净的使用.关于其他api的建议也是受欢迎的.

java cassandra nosql hector astyanax

19
推荐指数
1
解决办法
5953
查看次数

HQL在executeUpdate上生成不完整的"交叉连接"

我正在做一个grails项目.我有以下查询,我正在尝试执行

String CHECK_FOR_HIGH_TRADE_VOLUME_QUERY = "Update LocationTrade lt set lt.hasVeryHighVolume=true where lt.locationIndices=? AND lt.trade.volume>20000";

...

LocationTrade.executeUpdate(CHECK_FOR_HIGH_TRADE_VOLUME_QUERY, [indices]);
Run Code Online (Sandbox Code Playgroud)

LocationTrade和Trade之间的关系是单向多对一的.因此,LocationTrade引用了Trade,但Trade类没有引用LocationTrade列表.

执行时,我得到以下异常.

org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute update query; SQL [update location_trade cross join  set has_very_high_volume=1 where location_indices_id=? and volume>20000]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute update query

and

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set has_very_high_volume=1 where location_indices_id=997 and volume>20000' at …
Run Code Online (Sandbox Code Playgroud)

java mysql grails spring hibernate

10
推荐指数
1
解决办法
3741
查看次数

Grails:当前事务中的原始SQL查询

我试图使用类似的东西执行原始SQL查询

def dataSource;
Sql sql = new Sql(dataSource);
Run Code Online (Sandbox Code Playgroud)

但是,它似乎在一个单独的交易中运行.因此,它错过了在服务方法中完成的所有(未提交的)更改.

在当前事务中运行原始sql查询的最佳方法是什么?

grails hibernate grails-orm grails-2.0

3
推荐指数
1
解决办法
3443
查看次数