目前与我的工作@PostPersist和@PostUpdate,而在这些触发器我坚持附加实体.问题是,这些触发器是否在同一个交易中,如果不是,是否可以强行执行?
对我而言,它就是这样的.当我查看日志时,事务不存在(它在触发器启动之前提交),这阻止了我(没有REQUIRES_NEW 注入bean的持久方法)保存数据库中的其他实体.
REQUIRED属性完全被忽略,MANDATORY属性不会抛出异常.
可能是JUnit的问题(因为我处于开发阶段并且没有测试完整环境中的行为)?
如果无法在此触发器上扩展事务,如何确保如果在@PostPersist和之前发生回滚@PostUpdate,那么这些操作也将被回滚.
我正在构建一个通用表"Sample"的查询,我有几个类型继承自此表"SampleOne","SampleTwo".我需要一个像这样的查询:
select s from Sample where s.type = :type
Run Code Online (Sandbox Code Playgroud)
其中type将是表的鉴别值.是否可以以任何方式(并避免创建特定于实体的查询,每个SampleOne,SampleTwo ...等)
我非常感谢本主题的任何意见,
亲切的问候,P.
我想知道密码学的新趋势.哪种算法是新的?哪些是改进的,哪些因过去的时间而死?例如,EEC(椭圆曲线密码术)是一种非常新的方法,但绝对不是唯一的方法.你能说出一些吗?
我想知道有没有简单的方法来实现跟踪实体的变化?有来自Hibernate的Envers进行审计,但据我所知,它是以Hibernate为导向的.我在想如果JPA中有什么东西,或者是一个没有超出规范的解决方案.如果没有,有人可能会让我知道如何开始这种事情.我想到的一个想法是创建一个实体,例如:
class Change {
String className;
long id;
String fieldName;
String fieldValue;
Date dateOfChange;
}
Run Code Online (Sandbox Code Playgroud)
哪个包含更改的属性.这个解决方案在存储空间方面似乎非常有效,但是处理被跟踪的实体之间的关系可能会更加困难(但尚未弄清楚).
我非常感谢本主题中的任何意见,
亲切的问候,P.
我在WebService中面临一个问题,详细说明:
Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:171)
... 26 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1000)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1900)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1828)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:590)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 31 more
Run Code Online (Sandbox Code Playgroud)
当我尝试向目标服务发送请求时,需要30-60秒,并且抛出上述异常.我正在使用Tomcat 5,我想问有没有办法增加超时值?我想要访问的WSDL和WebService也在运行和可用.
我非常感谢任何帮助,
亲切的问候,P.
我面临与在Tomcat 5服务器上部署两个应用程序相关的问题.部署和运行服务器时,我收到一条错误消息,这也会阻止第二个应用程序正常运行.
Unable to deploy collapsed ear in war /my-app: Exception: Application cannot be deployed as it contains deployment-ids which are in use:
Run Code Online (Sandbox Code Playgroud)
之后会列出所有重复的ID.第二个应用程序是较小的应用程序,它被添加到管理所有实体的现有应用程序中.该项目由Eclipse nad Maven构建.有没有办法添加应该包含在第二个应用程序中的依赖项(我现在打算做什么)所以第二个应用程序将能够知道/使用已经存在的包?
感谢adnvace的任何支持,
问候
我必须在表上执行批量更新.举个简单的例子:
UPDATE Book b SET b.amount = b.amount + 1 WHERE b IN ( :books )
Run Code Online (Sandbox Code Playgroud)
问题是b.amount可以是或者是NULL值或者是int,如果有一个NULL值,它应该表现为b.amount将等于1.
在JPA/JPQL中是否有任何"强制转换"或任何其他方式来解决此问题,
先感谢您,
问候,P
java ×4
jpa ×4
tomcat ×2
algorithm ×1
cryptography ×1
cxf ×1
jpql ×1
openejb ×1
transactions ×1
web-services ×1