我在尝试更新我的实体时遇到以下问题:
"A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance".
Run Code Online (Sandbox Code Playgroud)
我有一个父实体,它有Set<...>一些子实体.当我尝试更新它时,我将所有引用设置为此集合并进行设置.
以下代码表示我的映射:
@OneToMany(mappedBy = "parentEntity", fetch = FetchType.EAGER)
@Cascade({ CascadeType.ALL, CascadeType.DELETE_ORPHAN })
public Set<ChildEntity> getChildren() {
return this.children;
}
Run Code Online (Sandbox Code Playgroud)
我试图只清理Set <..>,根据这个:如何"可能"解决问题,但它不起作用.
如果您有任何想法,请告诉我.
谢谢!
如何判断数组是否包含元素?我认为可能会有类似[1, 2, 3].includes(1)评价的东西true.
我有以下实体类(在Groovy中):
import javax.persistence.Entity
import javax.persistence.Id
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
@Entity
public class ServerNode {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id
String firstName
String lastName
}
Run Code Online (Sandbox Code Playgroud)
和我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="NewPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Icarus"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="create"/>
</properties>
<class>net.interaxia.icarus.data.models.ServerNode</class>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
和脚本:
import javax.persistence.EntityManager
import javax.persistence.EntityManagerFactory
import javax.persistence.Persistence
import net.interaxia.icarus.data.models.ServerNode
def factory = Persistence.createEntityManagerFactory("NewPersistenceUnit")
def manager = …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行一些Android测试,但是,编译器抱怨存在多个dex文件.
Multiple dex files define Lorg/hamcrest/MatcherAssert;
Run Code Online (Sandbox Code Playgroud)
所以我试图过滤重复的依赖项: $ ./gradlew -q dependencies app:dependencies --configuration androidTestCompile
但是我得到以下输出:
------------------------------------------------------------
Project :app
------------------------------------------------------------
androidTestCompile - Classpath for compiling the androidTest sources.
+--- org.mockito:mockito-core:1.9.5
| +--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| \--- org.objenesis:objenesis:1.0 -> 2.1
+--- com.google.dexmaker:dexmaker-mockito:1.2
| +--- com.google.dexmaker:dexmaker:1.2
| \--- org.mockito:mockito-core:1.9.5 (*)
+--- com.android.support.test.espresso:espresso-core:2.0
| +--- com.squareup:javawriter:2.1.1
| +--- org.hamcrest:hamcrest-integration:1.1
| | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- org.hamcrest:hamcrest-library:1.1
| | \--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- javax.inject:javax.inject:1
| +--- com.android.support.test.espresso:espresso-idling-resource:2.0
| +--- com.android.support.test:testing-support-lib:0.1 …Run Code Online (Sandbox Code Playgroud) 看来,Groovy的不支持break,并continue从封闭中.模拟这个的最佳方法是什么?
revs.eachLine { line ->
if (line ==~ /-{28}/) {
// continue to next line...
}
}
Run Code Online (Sandbox Code Playgroud) 想象一下,我有这样的结构:
class Foo {
String bar
}
Run Code Online (Sandbox Code Playgroud)
现在想象一下,我有几个实例Foo,其bar值是baz_1,baz_2和zab_3.
我想编写一个只收集bar包含文本的值的collect语句baz.我无法让它工作,但它看起来像这样:
def barsOfAllFoos = Foo.getAll().bar
assert barsOfAllFoos == [ 'baz_1', 'baz_2', 'zab_3' ]
def barsWithBaz = barsOfAllFoos.collect{ if( it.contains( "baz" ) { it } ) } // What is the correct syntax for this?
assert barsWithBaz == [ 'baz_1', 'baz_2' ]
Run Code Online (Sandbox Code Playgroud) Django models.ManyToManyField和models.ManyToManyRel?有什么区别?我对这些东西很困惑.
在Gradle 2.1之前,我可以通过使用allProjects闭包将插件应用于所有项目(当然,通过prepreisly解析jar):
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
}
}
allprojects {
apply plugin: "com.jfrog.artifactory"
}
Run Code Online (Sandbox Code Playgroud)
使用新的发布机制,看起来plugins封闭不能在内部使用allprojects:
allprojects {
plugins {
id "com.jfrog.artifactory" version "3.0.1"
}
}
Run Code Online (Sandbox Code Playgroud)
失败了:
"无法在根项目中找到参数[build_xxxx_run_closure1_closure4 @ yyyyy]的方法插件()
使用plugins闭包的规则是什么?该插件仅适用于当前项目吗?如果是这样,如何在不重复plugins每个构建内部的闭包的情况下将其应用于所有项目?
是否可以为所有软件包配置logback以记录例如WARN或INFO级别,但是xy?然后单独配置包xy.
我发现Atom编辑器是Sublime文本编辑器的免费替代品.无法找到在Atom编辑器中运行程序的简单方法.就我而言,我正在尝试运行java程序.如果有可能请告诉我?如果是,请描述要遵循的步骤.