V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  JohnZorn  ›  全部回复第 7 页 / 共 15 页
回复总数  292
1  2  3  4  5  6  7  8  9  10 ... 15  
2018-12-18 11:16:10 +08:00
回复了 JohnZorn 创建的主题 Java 多数据源和事务
楼上应该是 DataSourceTransactionManager 不是 DataSourceManager。 打错了
2018-12-18 11:15:00 +08:00
回复了 JohnZorn 创建的主题 Java 多数据源和事务
@abcbuzhiming 对 最开始想弄成一个事务管理器。大概如这中 retrun new DataSourceManager(dynamicDataSource)。
然后就会出现我在 #3 出现的那种错误。
后来我干脆就创建两个 DataSourceManager 的 bean。 比如分别指定 beanName 为 A, B。
然后在 service 层比如我用到 ADao 类。 就使用 @Transactional(transactionManager="A", rollbackFor=xxx.class)
并在 service 层抛出相应异常,但是不能回滚。我 debug 跟断点是
TransactionInterceptor.invoke(MethodInvocation) ---->
TransactionAspectJSupport.invokeWithinTransaction(Method, Class, final InvocationCallback) ----> TransactionAspectJSupport.completeTransactionAfterThrowing(TransactionInfo, Throwable)
看到了代码执行了
txInfo.getTransactionManager().rollback(txInfo.getTransactionStatus());
这一行 。并且是正常执行(这行没有出现异常)。但是事务就是没有回滚,想不明白为什么。难道我插入数据时使用的连接,和抛出异常事务回滚时的连接不一样?
2018-12-18 10:15:52 +08:00
回复了 JohnZorn 创建的主题 Java 多数据源和事务
@helloZwq 事务呢?怎么加的
2018-12-18 10:15:22 +08:00
回复了 JohnZorn 创建的主题 Java 多数据源和事务
@abcbuzhiming
/*
如果你再 service 层用了 @Transactional,那你就要保证这个 service 里调用的 mapper 都是一个库的
*/
我是在 service 层用了 @Transactional, 同时我在测试的时候也保证了这个 service 中的 mapper 都是一个库的,并且手动抛出了异常。 但是不行。因为是根据 dao 层方法上的注解去选择数据源。但是事务的开启是在 service 层, 但是开启一个事务又需要有确定的数据源。由于现在数据源还没有确定下来,也就是 AbstractRoutingDataSource 里面那个 determinkey 方法还没有执行,动态数据源还没有确定下来,(即开启事务的 aop 先于动态选择数据源的 aop 执行了)就出现了如下错误:
Could not open JDBC Connection for transaction; nested exception is java.lang.IllegalStateException: Cannot determine target DataSource for lookup key [null]
就是这样了。不知道有没有说明白
2018-12-14 11:20:16 +08:00
回复了 JohnZorn 创建的主题 Java Java 为什么会这样
@lurenw 3q
2018-12-14 10:21:58 +08:00
回复了 JohnZorn 创建的主题 Java Java 为什么会这样
@szq8014 执行表达式执行 System.out.println(oldMode) 抛出了 com.sun.jdi.VMMismatchException : 1

Oracle Docs 中
public class VMMismatchException extends RuntimeException
Thrown to indicate that the requested operation cannot be completed because the a mirror from one target VM is being combined with a mirror from another target VM.
Since:
1.3
2018-12-14 09:23:47 +08:00
回复了 JohnZorn 创建的主题 Java Java 为什么会这样
@szq8014 这个是 jdk 里面的中间值我打印不出来。我点进那个方法里面跟到 return 部分是对一个布尔类型取非 那个布尔是 false. 也就是 return !false;. 但是 boolean 接收到的返回值是个 1。开源中国上有人在 BigDecimal 中发现过这个问题,但是底下评论好像也没说出个一二三来。
2018-12-13 21:45:54 +08:00
回复了 JohnZorn 创建的主题 Java Java 为什么会这样
@misaka19000 为什么自己代码里的 boolean 就可以计算出布尔呢
2018-12-13 19:51:55 +08:00
回复了 JohnZorn 创建的主题 Java Java 为什么会这样
错了 是 java.io.ObjectOutputStream
2018-12-13 19:51:29 +08:00
回复了 JohnZorn 创建的主题 Java Java 为什么会这样
坐标 java.io.OutputStream
jdk8 中是 1108 行
方法是
private void writeObject0(Object obj, boolean unshared) throws IOException
@xlui emmmm
V 站暴脾气老哥很多。。
2018-12-06 19:54:14 +08:00
回复了 ackfin01 创建的主题 程序员 学了就忘了怎么办
忘了就学
2018-11-29 13:32:33 +08:00
回复了 rosu 创建的主题 问与答 早上通勤前有什么可以填一下肚子的不?
买个手抓饼完了
2018-11-24 12:25:58 +08:00
回复了 luosuosile 创建的主题 问与答 使用 idea 挂代理的可以帮我一下吗
4 楼应该是对的 你的程序 http 请求和 ide 没关系 http.setProxy 为请求设置代理
2018-11-23 18:59:57 +08:00
回复了 mortonnex 创建的主题 问与答 Java 工厂模式的优点?
来 new 一个 threadpoolexecutor。。。。
游戏倒是能控制住 吃控制不住 每次回到小区门口都控制不住买铁板烤串 emmm
2018-11-21 12:50:05 +08:00
回复了 Neojoke 创建的主题 Java 大家怎么看待 Java 的未来
福如东海,寿比南山。
1  2  3  4  5  6  7  8  9  10 ... 15  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1228 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 23:52 · PVG 07:52 · LAX 15:52 · JFK 18:52
♥ Do have faith in what you're doing.