在Spring Data项目中,CrudRepository为正在管理的实体类提供了复杂的CRUD功能。
T save (T entity);
总的来说,我知道" S扩展了T"意味着,即S,保存操作的返回类型,必须是T的子类型。为什么有必要添加诸如约束?我认为这样做会很好:
void delete(T entity);
在
中cat /home/configuration/configs.txt > /sys/bus/iio/devices/device3/config
我已经用谷歌搜索了更多的帮助,我已经在stackoverflow本身上发现了以下问题,但它对我来说并不是很清楚:
谢谢。答案 0 :(得分:12)
如果你想把它作为
T save (T entity);
然后,您可以分配结果的唯一变量必须是T
类型。
所以,如果您有CrudRepository<Animal,AnimalID> repository
,那么
Dog dog = getDog();
Dog savedDog = repository.save(dog);
您收到编译错误 - 您无法将结果分配给Dog
,因为它必须是T
类型,在这种情况下,{{1} }。
您需要检查返回的值是否确实属于Animal
类型,如果是,请将其强制转换为Dog
以将其放入Dog
。
使用声明,这意味着您可以将其分配给与原始参数相同类型的变量,因为类型解析将允许。
声明本身并没有说明如何保存狗的非动物部分。它所做的就是允许将结果分配回savedDog
,如果它原来是Dog
。