Optional annotations used to give hints to the container or the supporting code such as the ORM/UI bindings... All annotations in bean-properties are completely optional and can be replaced/overriden programmatically by writing code to the Bean/PropertyContext respectively. Annotations are defined to shorten the syntax and provide a more intuitive way for some use cases.