FRAME2 storage get defined using following syntax:
#[pallet::storage]
type SomePrivateValue<T> = StorageValue<_, u32, ValueQuery>;
#[pallet::storage]
#[pallet::getter(fn some_primitive_value)]
pub(super) type SomePrimitiveValue<T> = StorageValue<_, u32, ValueQuery>;
But storage works without ValueQuery keyword.
e.g.
#[pallet::storage]
type SomePrivateValue<T> = StorageValue<_, u32>;
What is the use of ValueQuery?
Similarly setting default value requires ValueStorage, and getter function is not allowed with ValueStorage. How can I have getter function with setting default value?
https://substrate.dev/docs/en/knowledgebase/runtime/storage#default-values