【发布时间】:2014-09-25 10:04:12
【问题描述】:
我有两个表,Organization 和 OrganizationReferent(其中有一列作为外键)如下:
通过将 Hibernate 用作 ORM(在符合 JPA 的项目中),我获得了广告显示的实体 @987654321 @。
我应该使用基于 Java EE 6 的 Data Access Objects (DAOs) 来管理 CRUD 操作。
OrganizationDAO 和 OrganizationReferentDAO 都扩展了 GenericDAO 实现,该实现提供如下 create 方法:
@Override
public EntityClass create(EntityClass entity) throws IllegalStateException, PersistenceException, ConstraintViolationException
{
entityManager.persist(entity);
entityManager.flush();
return entity;
}
现在,我定义了一个Wrapper 类,旨在管理涉及两个已定义表的CRUD 操作:
@Inject private OrganizationDAO organizationDAO;
@Inject private OrganizationReferentDAO organizationReferentDAO;
public final Organization createOrganization(final Organization organization) throws AlreadyExistsException, BadRequestException, DALException {
assert(organization != null);
organizationDAO.create(organization);
},
public final OrganizationReferent createOrganizationReferent(final Long organizationId, final OrganizationReferent organizationReferent) throws ConstraintViolationException, AlreadyExistsException, BadRequestException, DALException {
assert(organizationId != null);
assert(organizationReferent != null);
try {
organizationReferent.setOrganization(organizationDAO.findById(organizationId));
organizationReferentDAO.create(organizationReferent);
} catch (NotFoundException e) {
throw new ConstraintViolationException();
}
}
这种方法正确还是我应该使用不同的方法?
对于给定的基数,我应该强制创建还是编辑架构(例如,从
(1,*)更改为(0,*))?
【问题讨论】:
标签: java hibernate jakarta-ee jpa