Я знаю, что Hibernate использует прокси под капотом, и я знаю, например, что Spring-data использует прокси для транзакций, и есть ограничение с @Transaction Annotation (если метод1 из класса A вызывает метод2 с @Transaction Annotation из класса A, тоАннотация не будет иметь никакого эффекта). Итак, мой вопрос, есть ли какое-то подобное ограничение в Hibernate? Поскольку я хочу реализовать некоторую часть моей доменной логики внутри класса Hibernate-Entity, и для этого я должен быть уверен, что мои методы могут изменять поля (примитивы / другие сущности / коллекции сущностей) внутри класса без каких-либо проблем, связанных с Hibernate. См. Пример кода.
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Column(unique = true, nullable = false)
private String email;
public void doChange() {
doChangePrivate();
}
private void doChangePrivate() {
email = "asdf@a.com";
}
}
...
start Transaction inside a Service-Class
... myentity.doChange();
Я попробовал это, и это сработало. Но могут ли возникнуть некоторые проблемы (связанные с hibernate), если я напишу некоторую часть логики своего домена в классе hibernate-entity, который изменяет поля (примитивы / entity / collection of entity) внутри транзакции?