小编fxe*_*fxe的帖子

Hibernate 4 @OneToMany List <String>

对于@OneToMany关系,我是否必须映射到对象?

我有以下示例

@Entity
@Table(name="FOO_TABLE")
public class Foo {

    @Id
    @Column(name="ID")
    @GeneratedValue
    private int id;

    ?????
    private List<String> bars;

}
Run Code Online (Sandbox Code Playgroud)

如果酒吧是我会做的对象

@ManyToOne
@JoinColumn(name="ID_FOO")
Run Code Online (Sandbox Code Playgroud)

问题就解决了.但是,我想避免创建一个只表示一对字符串的对象(引用键,值).

FOO和BAR存储在单独的表中

CREATE TABLE Foo (
    ID INTEGER NOT NULL AUTO_INCREMENT,
    //SOME OTHER PROPERTIES
    PRIMARY KEY( ID),
);

CREATE TABLE Bar (
    ID_FOO INTEGER,
    VAL VARCHAR(256),
    PRIMARY KEY (ID_FOO, VAL),
    FOREIGN KEY ( ID_FOO) REFERENCES Foo( ID) ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa

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

Neo4j遍历性能

我想执行无向遍历来提取通过某种类型的关系连接的所有 id

当我执行以下查询时,它返回值的速度足够快

MATCH path=(s:Node {entry:"a"})-[:RelType*1..10]-(x:Node) 
RETURN collect(distinct ID(x))
Run Code Online (Sandbox Code Playgroud)

然而做

MATCH path=(s:Node {entry:"a"})-[:RelType*]-(x:Node) 
RETURN collect(distinct ID(x))
Run Code Online (Sandbox Code Playgroud)

需要大量的时间。我怀疑通过使用*它来搜索从 s 到 x 的每条路径,但由于我只想要 id,所以这些路径可以被丢弃。我真正想要的是 BFS 或 DFS 搜索来查找 s 中的连接节点。

两个查询返回完全相同的结果,因为没有最短路径大于 5 的元素(仅在测试示例中!)。

performance neo4j cypher

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

集合addAll removeAll返回布尔值

C是类型的集合Set<T>,F(x)返回Set的集合,我想要做的是在集合之间执行操作,如union,intersection,difference

// C union ( F(X) \ F(Y))
C.addAll( F(X).removeAll( F(Y)))); //error boolean because removeAll returns a boolean
Run Code Online (Sandbox Code Playgroud)

替代方案我可以

C_aux = new HashSet<T> ( F(X));
C_aux.removeAll( F(Y)); 
C.addAll( C_aux);
Run Code Online (Sandbox Code Playgroud)

无论如何要做到这一点而不宣布辅助集合?(跳过/忽略布尔返回)

java

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

标签 统计

java ×2

cypher ×1

hibernate ×1

jpa ×1

neo4j ×1

performance ×1