1
@TableGenerator(name = "trial", table = "third",
pkColumnName = "a" , valueColumnName = "b", pkColumnValue = "first")
@Entity
public class First{
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "trial")
protected int a;
@OneToMany(mappedBy ="first", cascade = CascadeType.PERSIST)
@JoinColumn(name = "a")
protected List<Second> seconds;
}
@Entity
public class Second{
@Id
protected int a;
@ManyToOne
@JoinColumn(name = "b")
First first;
}
当我运行在主如下:如何获得自动生成的值?
Second aSecond = new Second();
aSecond.a = 2;
First aFirst = new First();
List<Second> scnds = new ArrayList<Second>();
scnds.add(aSecond);
aFirst.seconds = scnds;
aEntityManager.getTransaction().begin();
aEntityManager.persist(aFirst);
aEntityManager.getTransaction().commit();
它在表中设置的“B”列空第二? 如何获取a
中First
自动创建的值,并将其设置为b
,Second
?
我能问的第二个问题? @ManyToOne @JoinColumn(name =“a”,insertable = false,updatable = false)首先;如果我想在主键“a”而不是“b”上加入第二个表, – Moro 2009-04-27 19:08:50