Сопоставление Spring Hibernate на основе составного первичного ключа и интерфейса - PullRequest
0 голосов
/ 04 апреля 2020

Я искал в Stackoverflow, но не нашел ответа на свой вопрос. В любом случае, вот примерная схема того, что я пытаюсь построить с помощью пружины:

ConcreteToolA
-------------
id(pk)
....

ConcreteToolB
-------------
id(pk)
....

Resource
--------
id(pk)
name
...

UsedResource
------------------
resource_id(pk)
tool_id(pk)
tool_type(pk)
quantity
....

А в Java у меня есть что-то вроде этого:

public interface Tool {

}

@Entity
@Table(name = "ConcreteToolA")
public class ConcreteToolA implements Tool {

    @OneToMany
    private List<UsedResource> resources;
    private int toolType = Const.A;

}

@Entity
@Table(name = "ConcreteToolB")
public class ConcreteToolB implements Tool {

    @OneToMany
    private List<UsedResource> resources;
    private int toolType = Const.B;

}

@Enity
@Table(name = "Resource")
public class Resource {

    private String name;

}

@Entity
@Table(name = "UsedResource")
public class UsedResource{

    //one-to-many reference to tool
    private Tool usedBy;
    private int quantity;

}

Подводя итог Я хочу общий c способ связать ресурсы с различными (абстрактными) сущностями, такими как инструменты в моем случае. Но в будущем могут появиться дополнительные инструменты или другие более абстрактные объекты, которые могут потреблять ресурсы (люди и др. c.). Поэтому я хочу связать отношение (UsedResource) с интерфейсом и, возможно, нужен какой-то пользовательский установщик?

Может быть, я использовал только слова для поиска, и это уже объяснялось несколько раз ... Если бы кто-то мог мне здесь помочь, я был бы счастлив.

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