1) What do you mean with nested annotations? It is possible:
Code:
@Table(name="tbl_sky",
uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}
)
Do you mean @UniqueConstraint as nested annotation? If yes, why do you want to do it without it?
2)You can use MapKey to define the key of a Map, where the MapKey relates to the property (of the map's value-entity) to be used as key.
3) It's not mandatory to make an association bidirectional, though it's recommended. So you can keep your ManyToOne without your OneToMany on the other side.