我有三个有关系的实体。
public class Site {
@OneToMany
private List<Page> pages;
}
public class Page {
@OneToMany
private List<Article> articles;
@OneToMany
private List<TopArticle> topArticles;
}
public class Article {
@ManyToOne
private Page page;
}
public
在JPA中,有没有可能在不创建实体的情况下建立一对多的关系?
举个例子,比如说我有一个“财富饼干”,里面有几个“幸运数字”。这些幸运数字存储在一个只有cookie_id,lucky_number的表中。
在JPA中的中,不需要为它创建一个专门的实体,就能得到幸运数字的列表吗?
这是我尝试过的,但是它给了我一个Use of @OneToMany or @ManyToMany targeting an unmapped class错误
@Entity
@Table(name = "FORTUNE_COOKIE")
class FortuneCookie {
@Id
我需要一些帮助JPA自我参照关系。我认为有些东西我还没有正确定义。
我有一个名为ItemEntity的JPA实体bean。有两种类型的项目。父项和子项。父项可以有多个子项,子项只有一个父项。实际上,这是一个ManyToOne / OneToMany JPA自引用关系。
在我的数据库里,项目表是这样的.
item_no,parent_item_no,item_description
111,null,This is my parent item
222,111,This is my child item
因此,在我的java程序中,当我在项目111上调用itemEntity.getChildre
假设我的Person和Order实体处于单向的one-to-many关系中。
Person
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(mappedBy = "person")
Set<Order> orders = new HashSet<Order>();
// other fields, constructor, setters and gett
我正在使用EJB3.2和JPA2.1。在我的应用程序中,我有以下几个实体(简而言之):
@Entity
public class Festival
{
int Id;
String name;
...
@ManyToOne
@JoinColumn(name = "merchant", referencedColumnName = "Id")
Merchant merchant;
}
@Entity
public class Merchant
{
int Id;
String name;
我有三个类,一个名字是User,这个用户有其他类实例。就像这样;
public class User{
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL)
public List<APost> aPosts;
@OneToMany(fetch=FetchType.LAZY, cascade = CascadeType.ALL)
public List<BPost> bPosts;
}
public class BPost extends Post {
我有两个实体类,名为Product和ComboProduct。产品包含有关特定产品的所有信息,并具有主键productId。ComboProduct持有一个与产品具有@OneToMany关系的列表,并具有一个名为comboProductId的主键。当我使用同一组产品创建多个Comboproduct实例时,我得到以下DataIntegrityViolationException
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
p
我有一个问题,我被卡住了:我必须建立一种关系(奇怪!)。例如,我有一个关系,其中一个实体A可以有多个B (OneToMany)
A ----> B
现在我需要另一个关系,其中实体C将与A和B之间的复合关系具有OneToOne关系。例如,
C--> (A--->B) , not C-->A-->B
不是说C和A有关系,A和B有关系,它应该像C--> D (A --> B)一样。
生成的连接表在JPA中没有任何主键,现在我在思考如何映射这种关系。请注意,正常的A-->B也是需要的,因为它不能嵌入,它应该是持久的。
谢谢。
示例: Locatio
我正在学习hibernate,并试图理解如何在两个实体(OneToOne、OneToMany、ManyToMany)之间建立关系。考虑一下这个简单的场景:
用户实体:
@Entity
class User {
@Id
private userId;
private Vehicle vehicle;
// other code
}
车辆实体:
@Entity
public class Vehicle {
@Id
private int vehicleId;
private String desc;
// other code
我有一个用户实体和一个宠物实体。在用户和宠物之间没有@OneToMany、@ManyToMany或其他。原因是每个用户可能有数千只宠物(至少在这个例子中是这样)。由于我不想立即加载它(太慢),也不想延迟加载(导致延迟初始化exception...and,我不想使用open in view filter),所以我在用户存储库中创建了具有如下名称的方法(原因是我希望有机会只返回关系属性的子集)。我不想要一个用户的所有宠物:
getPetsForUser(final User user){...}。我在JPA中看到的连接示例显然使用了实体上的关系属性。我如何在JPA中做到这一点?
在SQL中,我将只
我有一个具有以下字段的数据库实体人员:
id
父亲
母亲
我需要创建带有字段子的JPA实体类。就像这样:
@Entity
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "father")
private
我基本上有两个实体Entity1和Entity2。Entity1包含以下代码:
@OneToMany(cascade=CascadeType.PERSIST)
@OrderColumn
List<Entity2> e = new LinkedList<Entity2>();
Entity2包含一些东西,但没有任何相关内容。我想将一些实例添加到列表e中,最重要的是,我想将一些重复的(相同的引用)添加到列表中两次或更多。尽管如此,我还是希望JPA持久化这两者,并且我希望JPA持久化列表的顺序。
到目前为止,如果我只添加唯一项,这是可行的。如果我添加了一个副本,JPA实际上希
我最近在我们的回购中发现了这样的映射:
@Entity
...
public class Foo{
...
@OneToMany(mappedBy = "someField", cascade = CascadeType.ALL, orphanRemoval = true)
public Set<Bar> bars;
...
}
@Entity
@IdClass(Bar.Key.class)
...
public class Bar{
@Id
public long someField;
@Id