Что propertyNames представляет в Hibernate метод onLoad? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть определенный c случай, когда я переопределяю метод Hibernate onLoad(), и он заполняет параметр propertyNames некоторым странным свойством.

Предположим, у меня есть следующая сущность Product и сущность Version, которые представляют какая-то версия продукта. Продукт может иметь несколько версий.

Объекты представлены следующим образом:

Продукт:

package some.package.name

@Entity
@Table(name = "product")
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "product_id")
    protected Integer id;

    @Column(name = "name")
    protected String name;

    ...
}

Версия:

package another.package.name

@Entity
@Table(name = "versions")
public class Version {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "version_id")
    private Integer id;

    @ManyToOne
    @JoinColumn(name = "published_product_name", referencedColumnName = "name")
    private Product product;

    ...
}

Как вы Можно заметить, что используемый здесь внешний ключ является , а не первичным ключом в сущности Product.

Теперь, когда я получаю метод onLoad с сущностью Product, я получаю следующее propertyNames:

[
 "id",
 "name",
 "another_package_name_Version_product"
]

Я хотел бы понять, что такое 3-е свойство name и как оно связано с JoinColumn? (Когда я использовал внешний ключ в качестве первичного ключа, я не получил это третье свойство)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...