我正在尝试学习冬眠+春季,现在我遇到了(也许很常见)的问题。

假设我有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/

10-09 09:24