java在JPA中将一个值映射到多个列
我从用户那里获得一个输入值并将其存储到数据库中。 我使用JPA写入DB。 如果我需要将输入值存储到数据库中的两列中,那么我必须使用什么注释
代码如下
我需要将用户输入(存储在Bean字段UserOrderDetails.noOfItemsSelected)存储到数据库表noOfItemsSelected和NoOfItemsDispatched中的两列中。 我应该使用什么注释
问题是我不想在实体Bean中添加NoOfItemsDispatched的字段
数据库表:
create table UserOrderDetails(
TransactionId varchar(255),
CreationDateTime datetime2(),
NoOfItemsSelected int,
NoOfItemsDispatched int
)
GO
我的实体Bean:
@Entity
@Table(name="UserOrderDetails")
public class UserOrderDetails {
@Id
private String transactionId;
private Timestamp CreationDateTime;
private int noOfItemsSelected;
//Getters and Setters
}
控制器类供参考:
class UserOrderCreationController {
@RequestMapping(value = "/createUserOrder", method = RequestMethod.POST)
public ResponseEntity<?> createUserOrder(@RequestBody UserOrderDetails userOrderDetails , @RequestHeader HttpHeaders headers) throws Exception{
//Some business logic to handle the user Order
dbrepository.save(UserOrderDetails);
return new ResponseEntity<UserOrderDetails>(userOrderDetails, HttpStatus.CREATED);
}
}
谢谢
# 1 楼答案
据我所知,您只需要在DAO层实体类中的字段上添加注释,如下所示。如果字段名和列名相同,则这些注释是可选的
正如问题所述,在DAO之前,一个值对应多个列。调用save时,应在两个字段中填充值
}
或者
或者,我们可以使用Hibernate的@Formula注释。将来自用户请求的一个字段填充到相应的字段,并使用@Formula为另一列保留相同的值。寻找@Formula的一些例子