我正在使用spring boot并在jpa上休眠.我正在使用JpaRepository接口来实现我的存储库.与以下UserRepository一样
public interface UserRepository extends JpaRepository<User, Long> {
}
Run Code Online (Sandbox Code Playgroud)
我想实现以下目标
以上所有步骤都不会发生在一个事务中,即外部服务调用不在事务中.
当我通过其存储库将我的Web服务结果保存在DB中时,我的用户实体更改也会保存.根据我的理解,这是由于在步骤#3中刷新了持久性上下文.在一些谷歌之后,我认为我可以实现我的目的,如果我可以在第一步分离我的用户实体并在步骤4重新连接它.请确认如果我的理解是正确的,我怎么能做到这一点?JpaRepository接口中没有用于分离实体的方法.
以下是代码来说明
public void updateUser(int id, String name, int changeReqId){
User mUser = userRepository.findOne(id); //1
mUser.setName(name); //2
ChangeRequest cr = changeRequestRepository.findOne(changeReqId);
ChangeResponse rs = userWebService.updateDetails(mUser); //3
if(rs.isAccepted()){
userRepository.saveAndFlush(mUser); //4
}
cr.setResponseCode(rs.getCode());
changeRequestRepository.saveAndFlush(cr); //this call also saves the changes at step 2
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我使用的是ember 1.3.1和ember-data 1.0.0-beta.5.在创建新模式时,我收到以下错误
断言失败:无法克隆未实现Ember.Copyable的Ember.Object
以下是我的型号代码
App.myModel = DS.Model.extend({name:DS.attr('string'),age:DS.attr('string')});
在我的创建路线模型功能
return Em.Object.create({});
最后保存我做了以下
this.store.createRecord('property',this.get('model'));
尽管出现错误,但我的后端服务已成功调用并保存了新模型.
请指导.
谢谢
我使用Spring引导1.2.3.RELEASE版本与JPA over hibernate.我遇到以下异常
org.springframework.dao.InvalidDataAccessApiUsageException: No transactional EntityManager available; nested exception is javax.persistence.TransactionRequiredException: No transactional EntityManager available
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:410) ~[EntityManagerFactoryUtils.class:4.1.6.RELEASE]
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:223) ~[HibernateJpaDialect.class:4.1.6.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:417) ~[AbstractEntityManagerFactoryBean.class:4.1.6.RELEASE]
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) ~[ChainedPersistenceExceptionTranslator.class:4.1.6.RELEASE]
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) ~[DataAccessUtils.class:4.1.6.RELEASE]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147) ~[PersistenceExceptionTranslationInterceptor.class:4.1.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [ReflectiveMethodInvocation.class:4.1.6.RELEASE]
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodIntercceptor.invoke(CrudMethodMetadataPostProcessor.java:122) ~[CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodIntercceptor.class:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [ReflectiveMethodInvocation.class:4.1.6.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [ExposeInvocationInterceptor.class:4.1.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [ReflectiveMethodInvocation.class:4.1.6.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) [JdkDynamicAopProxy.class:4.1.6.RELEASE]
at com.sun.proxy.$Proxy110.deleteByCustomerId(Unknown Source) ~[na:na]
Caused by: javax.persistence.TransactionRequiredException: No transactional EntityManager available
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:275) ~[SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.class:4.1.6.RELEASE]
at com.sun.proxy.$Proxy102.remove(Unknown Source) ~[na:na]
at org.springframework.data.jpa.repository.query.JpaQueryExecution$DeleteExecution.doExecute(JpaQueryExecution.java:270) ~[JpaQueryExecution$DeleteExecution.class:na]
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:74) ~[JpaQueryExecution.class:na]
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:97) ~[AbstractJpaQuery.class:na]
at …Run Code Online (Sandbox Code Playgroud) 我正在使用spring boot并使用tomcat连接池在jpa上休眠.能帮我理解spring在事务处理中如何使用数据库连接.例如,考虑以下场景:
假设外部服务(步骤4)需要1分钟才能完成,数据库池中将有多少个DB连接可用?假设spring保持DB连接,直到事务完成,在此期间收到的任何请求只有1个DB连接可用,如果我们收到多个请求,则必须等待DB连接.
请确认我的理解,如果它是正确的,请建议我如何在高交易量系统中处理这种情况.
谢谢
我使用mac 10.8,我已经安装了PHP 5.5.在命令行php -v show version 5.5.但是当我使用phpinfo()启动mac的apache服务器时,它会显示版本5.4.
任何人都可以帮我如何使Apache使用5.5版
谢谢
我支持在Windows 10上合作代理和运行docker.我已根据此处的文档在 docker上设置代理.
我能够提取图像,但这些代理设置不会传播到容器,例如当我运行alpine env时,它不会显示代理配置.以下是我的输出
? docker run alpine env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=14fca5bee12f
HOME=/root
Run Code Online (Sandbox Code Playgroud)
以下是根据文档的预期输出.
在构建以下docker文件时,我从alpine容器中获取连接错误
Docker版本
Docker version 17.12.0-ce, build c97c6d6
Run Code Online (Sandbox Code Playgroud)
DockerFile
FROM alpine:latest
ADD HelloWorld.class HelloWorld.class
RUN apk --update add openjdk8-jre
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "HelloWorld"]
Run Code Online (Sandbox Code Playgroud)
错误
Step 3/4 : RUN apk --update add openjdk8-jre
---> Running in 1205b24d5044
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/main: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.70c88391.tar.gz: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/community: could not connect to …Run Code Online (Sandbox Code Playgroud) 在我的基于 spring boot ws 的应用程序中,我按照契约优先的方法创建了一个 jax-ws 网络服务。Web 服务已启动,但我无法在我的 Web 服务中自动装配其他 bean。
我如何将 spring 中的 webservice 定义为 bean?
以下是我的 webservice impl 类:
@WebService(endpointInterface = "com.foo.bar.MyServicePortType")
@Service
public class MySoapService implements MyServicePortType {
@Autowired
private MyBean obj;
public Res method(final Req request) {
System.out.println("\n\n\nCALLING.......\n\n" + obj.toString()); //obj is null here
return new Res();
}
}
Run Code Online (Sandbox Code Playgroud)
MyServicePortType 由 maven 从 wsdl 文件生成
当我调用这个服务(通过 SoapUi)时,它给出了NullPointerException因为 MyBean 对象不是自动装配的。
由于我的应用程序是基于 Spring Boot 构建的,因此没有 xml 文件。目前我有sun-jaxws.xml带有端点配置的文件。如何在 Spring Boot 应用程序中进行以下配置
<wss:binding url="/hello">
<wss:service>
<ws:service …Run Code Online (Sandbox Code Playgroud) 我想用easymock测试以下代码.我已经创建了模拟套接字和模拟输入流,但我无法模拟读取方法.谁能帮帮我吗
byte[] lenbuf = new byte[2];
sock.getInputStream().read(lenbuf);
Run Code Online (Sandbox Code Playgroud)
我正在尝试跟进我的单元测试
InputStream mockInputStream = createMock(InputStream.class);
expect(mockInputStream.read(new byte[2])).andReturn(2);
replay(mockInputStream);
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误
Unexpected method call InputStream.read([0, 0]):
InputStream.read([0, 0]): expected: 1, actual: 0
Run Code Online (Sandbox Code Playgroud)
谢谢
eclipse生成的equals()方法对于if结构没有{}.例如
public boolean equals(Object obj) {
if (this == obj)
return true;
.........
return true;
}
Run Code Online (Sandbox Code Playgroud)
如何更改以在以下模式中生成代码
public boolean equals(Object obj) {
if (this == obj){
return true;
}
.........
return true;
}
Run Code Online (Sandbox Code Playgroud) 在我的所有Itegration测试中,我必须添加以下注释
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:test-context.xml")
@Transactional
Run Code Online (Sandbox Code Playgroud)
我在想是否可以创建一个自定义注释来将上述注释分组,而不是添加3个注释,我只能添加一个。为此,我创建了以下注释。
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:test-context.xml")
public @interface IntegrationTest {
String[] value() default {};
}
Run Code Online (Sandbox Code Playgroud)
但是,当我添加@IntegrationTest测试类时,它不会加载上下文。谁能指导我所缺少的吗?
谢谢
java ×7
spring ×5
hibernate ×3
jpa ×3
spring-boot ×2
annotations ×1
apache2 ×1
containers ×1
docker ×1
easymock ×1
eclipse ×1
ember-data ×1
ember.js ×1
jax-ws ×1
macos ×1
php ×1
proxy ×1
spring-mvc ×1
transactions ×1
unit-testing ×1
web-services ×1
windows-10 ×1