gpt4 book ai didi

java - 使用 Hibernate 管理事务

转载 作者:行者123 更新时间:2023-11-30 06:48:28 25 4
gpt4 key购买 nike

我正在做一个项目,我使用 Hibernate+JPA 来管理我的数据库。

但是当我写我的服务时,我必须一直写这样的东西:

public String subscribe(String lastName, String firstName, String username, String borndate, String managerPwd) throws AuthenticationException, ExistingSubscriberException, SubscriberException, BadParametersException {
try {
this.authenticateMngr(managerPwd);

this.em.getTransaction().begin();

// Generate password and birthdate
String password = UUID.randomUUID().toString();
Calendar birthdate = CalendarManipulator.convertToCalendar(borndate);

// Save player
try {
this.playerService.add(firstName, lastName, birthdate, username, password);
} catch (PlayerAlreadyExistException e) {
throw new ExistingSubscriberException();
} catch (InvalidNameException | MinorPersonException | NullParameterException | InvalidPasswordException e) {
throw new BadParametersException();
} catch (Exception e) {
this.unexeptedException(e);
}

this.em.getTransaction().commit();

return password;
}
catch (Exception e) {
this.em.getTransaction().rollback();
throw e;
}
}

这部分代码:

public void function {
try {
this.em.getTransaction().begin();

// .......

this.em.getTransaction().commit();

}
catch (Exception e) {
this.em.getTransaction().rollback();
throw e;
}
}

我必须在每个服务上写它......超过 50 :(

我没有使用 Spring(我知道存在一些解决方案),我在我的项目中单独使用 Hibernate + JPA。

是否存在一个解决方案来做同样的事情而不重复我自己:)?

最佳答案

如果您使用的是纯 Java - 那么是的,您应该在每个服务中编写此样板代码。但是,您可以使用 AOP,并为声明式事务划分创建自己的建议。

关于java - 使用 Hibernate 管理事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44250216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com