Когда вы хотите стилизовать childs, вы должны использовать ng-deep:
:host::ng-deep widgets-input input{
width: 100%;
max-width: 540px;
height: 42px;
border: solid 1px red;
}
Я не думаю, что это возможно (или необходимо) добавить link_id первичный ключ к объединяющей таблице. Объединяющая таблица будет обычно состоять из первичных ключей двух участвующих таблиц.
Используя XML Вам будет нужен синтаксис как это:
<class name="Parent">
....
<list name="children" table="link_table">
<key column="parent_id"/>
<many-to-many column="child_id"
class="Children"/>
</list>
...
</class>
<class name="Child">
...
<list name="parents" inverse="true" table="link_table">
<key column="child_id"/>
<many-to-many column="parent_id"
class="Parent"/>
</list>
...
</class>
Хотя я нахожу, что аннотации лучше используют.
Я делаю это использование аннотации, конкретно @ManyToMany и @JoinTable:
Будьте в спящем режиме документы:
@Entity
public class Employer implements Serializable {
@ManyToMany(
targetEntity=org.hibernate.test.metadata.manytomany.Employee.class,
cascade={CascadeType.PERSIST, CascadeType.MERGE}
)
@JoinTable(
name="EMPLOYER_EMPLOYEE",
joinColumns=@JoinColumn(name="EMPER_ID"),
inverseJoinColumns=@JoinColumn(name="EMPEE_ID")
)
public Collection getEmployees() {
return employees;
}
}
@Entity
public class Employee implements Serializable {
@ManyToMany(
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
mappedBy = "employees",
targetEntity = Employer.class
)
public Collection getEmployers() {
return employers;
}
}
Я не уверен, что можно осуществить это легко для существующей базы данных с существующими данными. Будьте в спящем режиме обычно более обеспеченное определение его собственной схемы данных в первый раз, когда Вы соединяетесь...
Я только осуществил many-many с аннотациями, но я думаю, что быть в спящем режиме документация предлагает базирующиеся примеры XML: текст ссылки