¿Cuál es la diferencia entre JoinQueryOver y JoinAlias?

Necesito saber cuál es la diferencia entre JoinQueryOver y JoinAlias, y cuándo usar cada uno.