我是关于在Stackoverflow上发布内容的新手,但是我一直在使用它,这对我的编码很有帮助。
我的问题如下: 我收到一个SOAP填充WebService的对象,如:
@WebMethod(operationName = "DogUpdate")
public @WebResult(name = "resultId")
Long dogUpdate(
@WebParam(name = "DogDto", header = true, mode = Mode.IN) DogDto dog);
所以现在我需要使用Hibernate 5.0.2更新数据库。
班级DogDto是这样的:
Entity
@Table(name="Dog", indexes={}, uniqueConstraints={})
class Dog implements Dog_i
{
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="DOG_SEQ")
@SequenceGenerator(name="DOG_SEQ", sequenceName="DOG_SEQ", allocationSize=1)
@Id
@Column(name="ID", unique=true, nullable=false)
private Long id;
@Column(name="Name", length=30)
private String name;
@Column(name="BirthDate")
private Date birthDate;
@Column(name="NumberDogSons")
private Long numberDogSons;
@Column(name="namesDogSons")
private List<String> namesDogSons;
}
所以我的问题是我不知道我在WebService中收到的DogDto的值是什么,所以我不知道我需要改变什么。
我看到反射可以有所帮助,但我有一个复杂的对象(在对象狗里面列出,像'所有者'和其他人更多)
我可以做什么用信息没有丢失来更新对象?因为如果一个字段为null(当时是Long,Integer,int ......),它会显示为0和其他相关问题。
你有什么建议吗?
非常感谢大家:)
答案 0 :(得分:0)
所以我的问题是我不知道我在WebService中收到的DogDto的值是什么,所以我不知道我需要改变什么。
从你上面的代码中,你似乎得到了一只狗狗#34;
你只需要使用saveOrUpdate方法使hibernate持久保存这个dog对象。
如果您的ID定义明确,Hibernate会更新现有的ID,否则会插入一个新的。