我在JPA bean中有一个标记为javax.persistence.transient的字段,以使JPA忽略它(否则在JPA操作期间抛出错误)。这适用于JPA和JAX-WS webservices返回字段确定。但是,如果我使用url和JaxWsProxyFactoryBean接口(使用JaxWsProxyFactoryBean调用webservice),则不会返回标记为transient的字段。这显然必须是因为JaxWsProxyFactoryBean正在使用序列化并由于@Transient而删除它们。
我的问题,有没有办法让JPA忽略它但仍然有JaxWsProxyFactoryBean返回该字段?
示例:
class House {
...
@Transient
// JaxWsProxyFactoryBean clients dont return this due to @Transient
// when this object is returned in a web service
private Address address;
...
}
答案 0 :(得分:0)
您可以尝试为JPA和WS设置单独的bean,并在两者之间映射服务层(您可以使用ModelMapper来实现映射)。
使用此模式,您可以让JPA bean正确建模持久性,并拥有一个正确建模与客户端交互的WS bean。