我正在尝试学习冬眠+春季,现在我遇到了(也许很常见)的问题。
假设我有2个模型:
@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,但是我如何适应这种情况?
我当前的解决方案:
添加到汽车类:
@OneToMany(mappedBy="cars")
private List<Type> types;
添加到Type类:
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="Typeid")
Cars car;
这个可以吗?我想知道Car可以有很多类型。例如,如果我有汽车混合动力车,那么它可以与2种类型的汽车相关。
最佳答案
在上面,您应该拥有汽车而不是汽车,因为您已经使用过可变汽车:
@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;
...
}
关于java - 如何弄清楚2张 table 的情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21388972/