小编Ogu*_*glu的帖子

JPA + Hibernate + Spring + OneToMany删除级联

我已经阅读了一些相关的问题,但它们与我的问题并不完全相同.

我正在使用JPA + Hibernate + Spring,我想做一些我不确定是否可以使用config的东西.

我的域类具有或多或少的复杂关系.有许多元素与一个元素相关(如果它是一个树,许多元素是一个元素的儿子).

就像是:

@Entity
class Foo {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @ManyToOne
    @JoinColumn(name = "PARENT_ID")
    private Foo parentNode;
    ...
}
Run Code Online (Sandbox Code Playgroud)

Wich会得到一张表:

Foo id    parent_id
1
2         1 
3         1
Run Code Online (Sandbox Code Playgroud)

当我与ID = 1删除行欲删除与ID = 2和id = 3行(它可以是递归的,与PARENT_ID = 2和PARENT_ID = 3的元件将被删除以及).

对于某些限制,我只能在父子方面与parent_id引用建立关系.

我的问题是:是否可以使用JPA或Hibernate配置执行此操作,还是需要执行一些递归功能来删除所有子项和所有父项?

我尝试过:

@OneToMany(name = "PARENT_ID", cascade = CascadeType.REMOVE)
Run Code Online (Sandbox Code Playgroud)

我读过可能使用Hibernate注释.

如果有人能给我一些线索,我就失去了这一点.

编辑1

是否可以这样做:

@Entity
class Foo {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @ManyToOne
    @JoinColumn(name="PARENT_ID")
    private Foo parentNode;

    @OneToMany(fetch = FetchType.LAZY, …
Run Code Online (Sandbox Code Playgroud)

spring annotations hibernate jpa spring-mvc

21
推荐指数
2
解决办法
6万
查看次数

如何在Play Framework 2.x [Java]中模拟控制器/休息端点以进行单元测试

我们正在Play Framework 2.x上开发一个带Java的项目,并有一些休息端点.我们还有一些测试用例,如下所示:

    @Test
    public void testLogout() throws Exception {
        FakeRequest request = new FakeRequest("GET", "/product/api/v1/logout");

        Result result = route(request);

        assertThat(status(result)).isEqualTo(OK);
        assertThat(contentType(result)).isEqualTo("application/json");
        assertThat(contentAsString(result)).contains("result");
    }
Run Code Online (Sandbox Code Playgroud)

另一方面,我们有一些方法[like register()]无法在生产数据库中测试.

测试影响prod数据库的方法的正确方法是什么?我觉得嘲笑,但我不确定,我不知道该怎么做.如果嘲笑是一个不错的选择,有没有任何有效的例子?

请给我一些关于这个问题的建议.

java junit unit-testing mocking playframework-2.0

14
推荐指数
1
解决办法
1302
查看次数

在Swift中使用Alamofire时如何获取响应头?

我正在使用Alamofire进行休息(POST)请求并无缝地获得JSON响应.但我只能访问响应机构.我想获得响应标头.使用Alamofire时难道不可能吗?

这是我的代码片段:

@IBAction func loginButtonPressed(sender: UIButton) {
    let baseUrl = Globals.ApiConstants.baseUrl
    let endPoint = Globals.ApiConstants.EndPoints.authorize

    let parameters = [
        "apikey": "api_key_is_here",
        "apipass": "api_pass_is_here",
        "agent": "agent_is_here"
    ]

    Alamofire.request(.POST, baseUrl + endPoint, parameters: parameters).responseJSON {
        (request, response, data, error) in let json = JSON(data!)

        if let result = json["result"].bool {
            self.lblResult.text = "result: \(result)"
        }  
    }
}
Run Code Online (Sandbox Code Playgroud)

iphone http-headers ios swift alamofire

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

Java Card:如何将SIM小程序加载到真正的智能卡?

我在Eclipse中开发了一个Java Card applet并获得了一个cap文件.然后我使用jcManager - Java安全卡管理器将该文件加载到我的智能卡.我有两种类型的智能卡:

  1. 联系方式,JCOP 2.1 36K
  2. 非接触式,JCOP 2.1

我的智能卡读卡器是:SDI011双接口读卡器.

另外,对于开发SIM applet,我正在使用Gemalto Developer Suite [3.6].该IDE有一个GSM模拟器,我的SIM小程序可以很好地工作.它给出了applet的cap,jar,jac,exp ..文件.

到目前为止一切都很好,但我想将该cap文件加载到我的联系人或非接触式Java卡[因为我没有可用的SIM卡],然后发送 - 接收APDU消息.

可能吗?如果有,怎么样?如何将我的SIM小程序加载到真正的智能卡 [ 不是SIM卡 ]?

java apdu smartcard javacard sim-card

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

Android:下载受NTLM身份验证保护的文件

我想从我的Android应用程序中使用NTLM身份验证保护的Sharepoint服务器下载文件.我找到了一些教程但无法成功.

我尝试使用Java CIFS客户端库,但没有再次成功.

我调查了这篇文章:使用Android(JAVA)和NTLM身份验证操作SharePoint列表项,但我不想使用Web服务,我只想下载文件.

有什么建议?

java authentication sharepoint android ntlm

8
推荐指数
1
解决办法
3107
查看次数

在android中使用smack进行文件传输期间:java.util.concurrent.ExecutionException:客户端没有响应

public void ReceiveFile() {

        ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection);

        if (sdm == null)
        {
            sdm = new ServiceDiscoveryManager(connection);
            Log.e("service discovery", "SDM");
        sdm.addFeature("http://jabber.org/protocol/disco#info");

        sdm.addFeature("jabber:iq:privacy");
        }

        FileTransferManager manager = new FileTransferManager(connection);
        Log.e("after manager", "manager");
        manager.addFileTransferListener(new FileTransferListener() {
           public void fileTransferRequest(final FileTransferRequest request) {
              new Thread(){
                 @Override
                 public void run() {
                     Log.e("Thread running", "starting");
                    IncomingFileTransfer transfer = request.accept();
                    File mf = Environment.getExternalStorageDirectory();
                    Log.e("path", mf.getAbsoluteFile()+"/DCIM/" + transfer.getFileName());
                    File file = new File(mf.getAbsoluteFile()+"/DCIM/" + transfer.getFileName());

                    try{
                        transfer.recieveFile(file);
                        while(!transfer.isDone()) {
                           try{
                              Thread.sleep(1000L);
                           }catch (Exception e) {
                              Log.e("", …
Run Code Online (Sandbox Code Playgroud)

android xmpp file-transfer smack

6
推荐指数
0
解决办法
1023
查看次数

使用Play Framework 2.4.x和IntellijIdea 14.x无法解决符号'play'错误

我使用在Windows 64位操作系统上使用JDK 1.8的activator [v 1.3.5]创建了一个Play-java [v 2.4.2]项目.我运行activator run命令,它运作顺利.

但是当我在Intellij Idea [v 14.1.4]中打开该项目时,IDE无法正常工作; 在控制器和视图文件中警告我,如下所示: Intellij IDEA 14.x控制器

还有这个:

Intellij IDEA 14.x视图

它说:'无法解决符号......'

我用Google搜索并找到了一些有用的链接,包括一些stackoverflow Q&A,即:Play框架教程:无法解析符号'index'?

我有Scala和Play插件并在此路径中([文件 - >项目结构 - >模块 - > [MyAppModule] - >源选项卡])没有"target/scala- [version]/src_managed"目录.看看这个:

Intellij IDEA 14.x项目结构

在这个Intellij Idea或Play版本中,有些东西发生了变化.

我已经尝试了一些组合将文件夹作为源文件夹或排除.我使用了IDE的选项:'使高速缓存无效/重新启动'.他们都没有为我工作.

我该如何解决这个问题?

java scala intellij-idea playframework playframework-2.4

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

Eclipse使用Regex查找/替换注释行

我有一些包含如下注释的类:

...
...
...
/*     */ 
/*     */   public void startApplication()
/*     */   {
/*  57 */     initializeFields();
/*  58 */     this.run = true;
/*  59 */     new Thread(this).start();
/*     */   }
/*     */ 
/*     */   public void stopApplication() {
/*  63 */     this.run = false;
/*     */   }
/*     */ 
/*     */   public void run()
/*     */   {
...
...
...
Run Code Online (Sandbox Code Playgroud)

我必须清理/* */课程中的所有字符串.使用Eclipse的查找/替换工具我应该使用哪个正则表达式?

java regex eclipse

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

JavaFX RadioButton事件处理

从组中选择单选按钮时会触发什么样的JavaFX2事件,如何处理它?

event-handling radio-button javafx-2

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

Spring Boot 在从 application.yml 注入 Map 时不包含特殊字符

我有一个简单的 Spring Boot 项目,旨在读取和转换数据application.yml并将其转换为 Java Map<String,String>。在我项目的业务层中,我需要用电子邮件地址作为关键字填充该地图。问题从这里开始。Spring(或 Spring Boot)无法按我的意愿工作。它完全忽略@键侧的字符,但在值侧正常工作。

下面是一些代码:

应用程序.java

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

引导程序

@Slf4j
@Component
@ConfigurationProperties(prefix = "foo-filter")
public class Bootstrap implements CommandLineRunner {

    @Setter
    private Map<String, String> barFilters;

    @Setter
    private Map<String, String> bazFilters;

    @Override
    public void run(String... args) {
        barFilters.forEach((key, value) -> log.info(key + " -> " + value));

        bazFilters.forEach((key, value) -> log.info(key + " -> " + value));
    }
} …
Run Code Online (Sandbox Code Playgroud)

java spring yaml properties spring-boot

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