Dozer
1。目前版本并未实现parent的传输,即如amount 里有facility, 而facamount 里只有facid, amount中,在map的过程中,无法将facility设置。如果使用如amount.facid与amount.facility.facid的方式,则每次都会创建新的facility.事实上,facility希望只有一个,而不是不同的元素里面的都不一样。
2。removeOrphans = true, 删除目的对象中,如list下,在original中不存的元素。
3。RelationshipType.NON_CUMULATIVE 将合并origial与dest中相同的对象。相同的判断,需要使用dest的hashcode 与equals方法,当equals方法为true,则合并。
4。RelationshipType.CUMULATIVE 只会将所有的origial元素(如list下的),添加到dest中。
5。第2,3点一起使用,便可以实现merge功能。在dest删除original不存在的,并且对于equals的做合并。
6。对于特殊的map过程,可以使用converter.可以向converter传递String类型的参数。
Hibernate save/saveorupdate
在对象可以自动生成key的情况下,如果自己创建一个object,并设上key值的时候,如果调用saveorupdate,则执行的是update方法。如果调用save,则会产生新的key覆盖原来手动设置key.即save会忽略手动设置的Key,而不是报任何的异常。
1。目前版本并未实现parent的传输,即如amount 里有facility, 而facamount 里只有facid, amount中,在map的过程中,无法将facility设置。如果使用如amount.facid与amount.facility.facid的方式,则每次都会创建新的facility.事实上,facility希望只有一个,而不是不同的元素里面的都不一样。
2。removeOrphans = true, 删除目的对象中,如list下,在original中不存的元素。
3。RelationshipType.NON_CUMULATIVE 将合并origial与dest中相同的对象。相同的判断,需要使用dest的hashcode 与equals方法,当equals方法为true,则合并。
4。RelationshipType.CUMULATIVE 只会将所有的origial元素(如list下的),添加到dest中。
5。第2,3点一起使用,便可以实现merge功能。在dest删除original不存在的,并且对于equals的做合并。
6。对于特殊的map过程,可以使用converter.可以向converter传递String类型的参数。
Hibernate save/saveorupdate
在对象可以自动生成key的情况下,如果自己创建一个object,并设上key值的时候,如果调用saveorupdate,则执行的是update方法。如果调用save,则会产生新的key覆盖原来手动设置key.即save会忽略手动设置的Key,而不是报任何的异常。