【发布时间】:2015-03-10 08:04:13
【问题描述】:
我有两个类,一个是用户,另一个是种族。两者都有一对一的关联,种族有一个外键 user_id 但问题是我在种族表中的外键列中得到一个空值。我正在使用 jsp 页面动态设置这些值。
我的映射如下
User Class
@OneToOne(cascade = CascadeType.ALL, mappedBy="user")
public Ethnicity ethnicity;
getter/setter
Ethnicity Class
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
public User user;
getter/setter
为了检索数据,我使用了设置值的同一 jsp 页面。这是我如何检索数据的代码
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.userId}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td>${user.firstName}</td>
<td>${user.lastName}</td>
<td>${user.active}</td>
<td>${user.ethnicity.ethnicityId }</td>
<td>${user.ethnicity.nationality }</td>
<td>${user.ethnicity.race }</td>
<td>${user.ethnicity.region }</td>
<td>${user.ethnicity.religion }</td>
</tr>
</c:forEach>
这是添加用户的功能之一。
@Service
@Transactional(readOnly = true)
public class UserServiceImp implements UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private Mapper mapper;
@Transactional
public void add(UserDTO userDTO) {
User user = mapper.map(userDTO, User.class);
userRepository.save(user);
}
}
用户服务类扩展了 JpaRepository,对于 entitymanager,我使用的是 maven 依赖项。
【问题讨论】:
-
你是如何坚持他们的?你设置关系的双方?你是如何找回它们的?
-
@NeilStockton 请查看更新后的代码。
-
在哪里?你没有发布 JPA 代码,你没有提到你是如何设置关系并持久化它们的
-
我是初学者,您能解释一下您需要哪些代码吗?
-
您将此问题标记为 JPA 和 Hibernate。 JPA API 将数据放入数据库并检索它。您的问题是关于数据库中的数据。因此,应该很清楚这是需要的代码(EntityManager 等)