在JPA中更改持久化类

ercv8c1e  于 7个月前  发布在  其他
关注(0)|答案(2)|浏览(59)

我有一个User类,它有自己的表,还有一个Organizer类,它也有自己的表,是User的特殊化。

public class OrganizadorService {

    private final OrganizadorRepository organizerRepository;
    private final UsuarioRepository userRepository;

    @Autowired
    private EntityManager entityManager;

    public OrganizadorService(OrganizadorRepository organizerRepository, UsuarioRepository userRepository) {
        this.organizerRepository = organizerRepository;
        this.userRepository = userRepository;
    }

    @Transactional
    public boolean transformToOrganizer(long id) {
        try {
            organizerRepository.transformToOrganizer(id);
            //entityManager.getEntityManagerFactory().getCache().evictAll();
            entityManager.flush();
        } catch (Exception e) {
            return false;
        }

        return true;
    }
}

个字符

h9vpoimq

h9vpoimq1#

我会改变模型。因为看起来User可能会变成Organizer,继承不是解决这个问题的正确工具。相反,让User有一个可选的OrganizerRole

ig9co6j1

ig9co6j12#

下面是我希望我的组织者服务中的transformToOrganizer看起来像什么。
i)通过用户ID从用户表中获取用户实体。
UserEntity user = userRepository.findById(id);
ii)我们有了用户实体,现在我假设用户到组织者的关系是@OneToOne,用户ID是组织者表中的主键。我们创建一个新的组织者实体,并设置必要的细节沿着,我们设置organizer.setUser(user)。
请在这里发布您的实体定义以获得更多清晰度。

相关问题