小编Luk*_*asz的帖子

JPA一对多删除并将foregn键设置为null

我使用Spring Data,JPA,Hibernate和MySQL.事件和类别之间有一对多的关系.显然,一个事件只能有一个类别,一个类别可以分配许多事件.当我尝试删除Category时出现问题,如果任何事件持有此类别的外键,则会出现错误.我想在删除类别时将Event表中的外键设置为null.目前,我通过在删除Category之前将其更新为null,在代码中显式设置外键来更新所有事件.有没有办法在使用注释时这样做?

这是我的分类:

    @Entity
    @Table(name = "category")
    public class Category implements Serializable{
    @OneToMany(mappedBy="category", targetEntity=Event.class, fetch=FetchType.LAZY, cascade=
{CascadeType.DETACH,  CascadeType.MERGE,  CascadeType.PERSIST, CascadeType.REFRESH})

    public Set<Event> getEvents_category() {
    return events_category;
    }
    }
Run Code Online (Sandbox Code Playgroud)

和Event类:

@Entity
   @Table(name = "event")
   public class Event implements Serializable{

    @ManyToOne(cascade={CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST,
CascadeType.REFRESH})
    @JoinColumn(name="events_dancestyle")
    public DanceStyle getDanceStyle() {
    return danceStyle;
    }
    }
Run Code Online (Sandbox Code Playgroud)

我已经看过很多次讨论这个话题,但我还没有看到任何解决方案.

mysql hibernate jpa one-to-many

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

Websocket工作在localhost但不是Heroku

我有一个使用websockets的应用程序(STOMP over SockJs),后端有Spring.应用程序在Tomcat上的localhost上工作正常(websockets)但是当我部署到Heroku或AWS Web Sockets停止工作时.我在Angular2中的websocket配置

        let sockjs = new SockJS('/rest/add?jwt=' + this.authService.getToken(), {"devel":true,"debug":true}, {"transports":["websocket"]});
Run Code Online (Sandbox Code Playgroud)

我也尝试过

{"disabled_transports":["websocket"]}
Run Code Online (Sandbox Code Playgroud)

但两者都失败了.web.xml中

 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
     http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">

<context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>default</param-value>
</context-param>

<servlet>
    <servlet-name>ws</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/spring/ws-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>
<servlet-mapping>
    <servlet-name>ws</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <async-supported>true</async-supported>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/rest/*</url-pattern>

</filter-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)

春天的websocket

    <websocket:message-broker
    application-destination-prefix="/app">
    <websocket:stomp-endpoint path="/add">
        <websocket:sockjs/>
    </websocket:stomp-endpoint>
    <websocket:simple-broker prefix="/topic, /queue" />
</websocket:message-broker>
Run Code Online (Sandbox Code Playgroud)

我在Heroku上的应用程序的URL,因此您可以在Web浏览器的控制台中自行检查. 链接 请看更新日志,这件事让我担心没有TransportHandler

CJyb2xlcyI6IkNVU1RPTUVSIn0.wFqNOduN-lD1-9GIRnG1X1aLJZTxtz9c6vmO7jmPPiE2017-04-06T16:23:32.439917+00:00 app[web.1]: 2017-04-06 16:2332 WARN  DefaultSockJsService:239 - No TransportHandler for http://myapp-ws.herokuapp.com/rest/add/097/eyocvxic/websocket?jwt=eyJhbGciOiJI
Run Code Online (Sandbox Code Playgroud)

heroku websocket sockjs spring-websocket angular

7
推荐指数
1
解决办法
884
查看次数

临时文件的文件未找到例外

我正在构建java应用程序(Spring&JSF和PrimeFaces).我上传文件到服务器,但是,如果我在文件上传结束后点击"下一步"按钮,我收到此错误:

Aug 24, 2013 8:12:34 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/codekata] threw exception [Request processing failed; nested exception is org.springframework.webflow.execution.repository.FlowExecutionRestorationFailureException: A problem occurred restoring the flow execution with key 'e1s3'] with root cause
java.io.FileNotFoundException: C:\Users\Luke\AppData\Local\Temp\upload__6f71235a_140b1bdd246__8000_00000011.tmp (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at org.apache.commons.fileupload.disk.DiskFileItem.readObject(DiskFileItem.java:709)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1891)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
     java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

如果我等了几秒钟,一切正常.我假设上传文件需要有时间将自己复制到临时文件夹,有没有人知道如何解决这个问题.我使用Tomcat 7.

这是我的下载方法:

public StreamedContent getDownloadFile()
    {
        InputStream …
Run Code Online (Sandbox Code Playgroud)

java jsf spring tomcat primefaces

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

Jetty spring 配置文件以编程方式

我正在寻找一种以编程方式在jetty中设置spring配置文件的方法,以便服务器上的war文件使用给定配置文件的应用程序,这是我的代码:

final WebAppContext context = new WebAppContext();
context.setLogUrlOnStart(true);
context.setWar("target/deployables/myapp-rest/myapp-rest.war");
context.setContextPath("/" + TEST_APP_CONTEXT);
context.setParentLoaderPriority(true);
server.setHandler(context);
server.start();
Run Code Online (Sandbox Code Playgroud)

我尝试了几件事,但似乎都没有工作......我需要通过 -Dspring.profiles.active=myProfile

spring jetty profiles

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

带撇号的字符串的正则表达式

我正在尝试构建正则表达式,它将过滤表单字符串中的所有非字母字符,如果任何字符串包含单引号,那么我想将其保留为规则的例外。

所以例如当我输入

car's34
Run Code Online (Sandbox Code Playgroud)

结果我想得到

car's
Run Code Online (Sandbox Code Playgroud)

当我进入

*&* Lisa's car 0)*
Run Code Online (Sandbox Code Playgroud)

我想得到

Lisa's
Run Code Online (Sandbox Code Playgroud)

目前我使用这个:

string.replaceAll("[^A-Za-z]", "")
Run Code Online (Sandbox Code Playgroud)

但是,它只给了我字母表,并删除了所需的单个配额。

java regex string

2
推荐指数
2
解决办法
3499
查看次数