我正在使用:
Spring3.2
Hibernate4.1.9
我需要用JPA映射三个类。A类和B类有很多种关系。A类和B类的唯一组合需要拥有C类的集合。
表A
foo
id | name
B表
bar
id | name
表C
data
id | xrefId
联接表--上的唯一键(fooId、barId)
xref
id | fooId | barId
改变现有的数据结构不是一种选择。
编辑1:
目标:加载一个Foo,获取它的条集合。从每个酒吧,得到它的(他们的!)收集数据。
甲级
@Entity
public class Foo {
@Id
private UUID id;
@ManyToMany(optional = false)
@JoinTable(name = "xref",
joinColumns = { @JoinColumn(name = "fooId") },
inverseJoinColumns = { @JoinColumn(name = "barId") })
private List<Bar> lstBar = new ArrayList<Bar>();
}
B类
public class Bar {
@Id
private UUID id;
@ManyToMany(mappedBy = "lstBar")
private List<Foo> lstFoo = new ArrayList<Foo>();
}
C类
public class Data {
@Id
private UUID id;
}
看看这个例子(为了简单起见,使用Integer而不是UUID,其余的应该可以)。
酒吧类:
public class Bar {
@Id
private Integer id;
@Column(name = "name")
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "barId")
private Collection<Xref> xrefCollection;
}
Foo类:
public class Foo {
@Id
private Integer id;
@Column(name = "name")
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "fooId")
private Collection<Xref> xrefCollection;
}
Xref类:
public class Xref {
@Id
private Integer id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "xrefId")
private Collection<Data> dataCollection;
@JoinColumn(name = "bar_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Bar barId;
@JoinColumn(name = "foo_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Foo fooId;
}
数据类:
public class Data {
@Id
private Integer id;
@JoinColumn(name = "xref_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Xref xrefId;
}
此代码由NetBeans自动生成,前提是数据库中正确定义了所有表和索引
您的联接表,xref
,有一个额外的id
字段,为了能够使用JPA创建这样一个表,您需要一个额外的实体类xref
,然后您必须映射a
和xref
之间以及B
和xref
之间的关系(两者都是一对多)。然后,您可以创建实体类C
,并映射C
和XRef
之间的关系。你需要更多的帮助吗?我现在没有时间提供代码,但是如果您需要询问,我会尽快添加代码。
只是吻。创建另一个类Xref,其中包含id
,foo
,bar
和Set
仅仅通过类层次结构来表达它看起来不太好,最好使用DAO。
实现一对多关系并选择父项和子项我有一个关系,我想进行查询(选择*) 文件夹。JAVA 作者。JAVA 我的请求: 我得到了这样的结果: 我的代码有什么问题?什么是问题,当我执行查询我得到了这个结果...我想得到这个结果
我正在使用JPA 如果我有一堆相关的实体,如下所示: 祖父母实体有许多父实体(一个实体)。使用联接表持久化 父实体有一个子实体(OneToOne)。在父表中使用child\u uuid持久化 如果我只获得了子唯一密钥,我如何获得祖父母实体? 我的想法是一个有3个连接的查询-子连接到父连接,父连接到表,将表连接到祖父母。这是最好的方式吗?
我一直在将代码从JIT转换到D3,并使用树布局。我已从中复制了代码http://mbostock.github.com/d3/talk/20111018/tree.html使用我的树数据,但我想做更多。 在我的例子中,我想创建子节点,这些子节点合并回一个较低级别的父节点,我意识到这更像是一个有向图结构,但是希望树能够适应这一点(即注意子节点之间的公共id应该合并)。 因此,基本上,一棵树在从父母到
问题内容: 我有下表: 我想让Folder类具有父子关系。 问题答案: 我相信正确的映射将是: 该会的工作只有当每个家长有最多一个孩子,上面的代码适用于更一般的情况下,父母可以有许多儿童。另外,为简单起见,我省略了get / set方法。
问题内容: 最初,我一直在尝试获取父母的名单以及每个父母的一个最近的孩子。我已经知道如何使用以下查询 但是问题是,结果不包括没有孩子的父母。添加也无济于事。所以我想我可以对所有没有孩子的父母进行查询,然后将这两个查询合并为一个查询。但是我在建立这样的查询时遇到了麻烦。将不胜感激任何建议。 问题答案: 这是您的查询:
因此,我想向附加到组件的任何子级添加某些样式。假设父组件称为,子组件称为。在我正在尝试以下方法:- 上述方法对我不起作用。我想知道为什么。还有没有一种方法可以让我在孩子们之间绘制地图,并将他们包装在一个新的组件中?像这样的东西;