相关疑难解决方法(0)

使用Hibernate持久收集界面

我想用Hibernate坚持我的小动物园:

@Entity
@Table(name = "zoo") 
public class Zoo {
    @OneToMany
    private Set<Animal> animals = new HashSet<Animal>();
}

// Just a marker interface
public interface Animal {
}

@Entity
@Table(name = "dog")
public class Dog implements Animal {
    // ID and other properties
}

@Entity
@Table(name = "cat")
public class Cat implements Animal {
    // ID and other properties
}
Run Code Online (Sandbox Code Playgroud)

当我试图坚持动物园时,Hibernate抱怨道:

Use of @OneToMany or @ManyToMany targeting an unmapped class: blubb.Zoo.animals[blubb.Animal]
Run Code Online (Sandbox Code Playgroud)

我知道targetEntity- @OneToMany但这意味着,只有狗或猫可以住在我的动物园.

有没有办法用Hibernate来持久化一个具有多个实现的接口集合?

java hibernate interface

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

Hibernate Mapped Superclass关系和覆盖

我有一个抽象的MappedSuperClass,参与者,它由三种"参与者"扩展.然后每个人都使用自己的'Project',也是一个抽象的MappedSuperClass.但是,我希望基类了解Projects,这样我就可以编写通用代码来与Participants进行交互.如何使用Hibernate注释指定它?以及如何在ExtendedParticipant和ExtendedProject类中覆盖它?

每个Participant类型和每个Project类型都有自己的数据库表,其中包含我无法更改的现有数据和ID(在表中不唯一).

以下代码给出了IDE错误"多对一属性不应该是'Mapped Superclass'".

@MappedSuperclass
public abstract class Participant implements Persistable {

    ...

    @ManyToOne
    @JoinColumn(name = "project_id")
    public Project getProject() {
        return project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

并且Project类与同样的问题大致相同:

@MappedSuperclass
public abstract class Project implements Persistable {

    ...

    @OneToMany
    public List<Participant> getParticipants() {
        return participants;
    }

    public void setProject(List<Participant> participants) {
        this.participants = participants;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

java annotations hibernate

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

JPA多态oneToMany

我无法弄清楚如何使用JPA干净地执行标记云,其中每个数据库实体可以有许多标记.

例如

帖子可以有0个或更多标签用户可以有0个或更多标签

在JPA中有一种更好的方法,而不是让所有实体都像Taggable抽象类那样子类吗?标签实体将引用许多Taggables.

编辑:标签云只是简化我遇到的问题的一个示例.在我的场景中,关系应该是OneToMany,其中Tag不能被重用.

谢谢

java polymorphism jpa

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

标签 统计

java ×3

hibernate ×2

annotations ×1

interface ×1

jpa ×1

polymorphism ×1