我正在尝试学习hibernate + spring,现在我遇到了(可能是常见的)问题。
想象一下,我有两个模特:
@Entity
@Table(name="cars")
public class Cars {
@Column(name="averageSpeed")
private double speed;
/??
private List<Type> types;
// setters and getters
}
and Type model:
@Entity
@Table(name="types")
public class Type{
// some variables
//?//
private Cars car;
}
在这种情况下你会发现“//?//”我不知道如何解决这个问题。我想做的是让这辆车有很多种类型。它应该是OneToMany,但我怎样才能适应这种情况呢?
我目前的解决方案:
添加到Cars类:
@OneToMany(mappedBy="cars")
private List<Type> types;
添加到Type类:
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="Typeid")
Cars car;
这可以吗?我想让汽车有很多种类型。例如,如果我有汽车混合动力车,那么它可以与两种类型的汽车相关联。
答案 0 :(得分:1)
当然没关系,如果你有1-n的关系,它应该有效。 要了解有关JPA / Hibernate的更多信息,我建议您使用以下教程: http://www.mkyong.com/tutorials/hibernate-tutorials/ 看看“Hibernate Association(表关系)”部分。这是非常明确的。 希望能帮助到你。好好学习。
答案 1 :(得分:0)
在上面你应该有汽车而不是汽车,因为你使用的是可变汽车:
@OneToMany(mappedBy="car")
private List<Type> types;
add to Type class:
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="Typeid")
Cars car;
和他们各自的二传手和吸气鬼。
您也可以像往常一样在反之亦然的方向上级联父表和子表:
@Entity
public class Car{
...
...
@OneToMany(mappedBy="car", orphanRemoval=true, cascade={CascadeType.ALL})
private List<Type> types;
...
}