泛型bi-dir一对多关系

wgeznvg7  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(350)

我想知道在JPA2.0中是否存在使用泛型的方法?
考虑以下情况:

  1. @Entity
  2. public class GenericPhoto<T> implements Serializable {
  3. @Id
  4. @GeneratedValue
  5. private long id;
  6. @NotNull
  7. private byte[] file;
  8. @ManyToOne(cascade = { CascadeType.DETACH })
  9. @JoinColumn(name = "PARENTID", nullable = false)
  10. @NotNull
  11. private T parent;
  12. //...
  13. }
  14. @Entity
  15. public Car {
  16. @OneToMany(mappedBy = "parent")
  17. private Set<GenericPhoto<Car>> photos;
  18. //...
  19. }
  20. @Entity
  21. public Truck {
  22. @OneToMany(mappedBy = "parent")
  23. private Set<GenericPhoto<Truck>> photos;
  24. //...
  25. }

我希望代码能解释这一切。我只想为photo创建一个泛型类,我认为这样可以更容易地实现服务等。
致以最诚挚的问候

yr9zkbsy

yr9zkbsy1#

当您使用泛型时,它类似于不键入字段(即objectparent),因此您需要告诉jpa如何Map关系。为此,可以在jpa中使用targetentity。
为此,您将需要一个通用的超类to car和truck,即auto,并将@manytoone中的targetentity设置为auto(您还可以考虑将照片移动到auto)。
如果由于某种原因不能使用继承(最好使用继承)。如果你使用eclipselink,你可以使用@variableonetoone关系。

相关问题