@Entity
@Table(name="PLAYER")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
name="TEAM",
discriminatorType=DiscriminatorType.STRING
)
public abstract class Player{
@Id
@Column(name="ID")
@GeneratedValue(generator = "seq_gen")
@SequenceGenerator(name = "seq_gen", sequenceName = "CONSTANTS_SEQ")
protected long id;
@Column(name="NAME")
protected String name;
@Column(name="YEAR")
protected int year;
}
@Entity
@DiscriminatorValue(value = "SUNRISERS")
public class SunRisersPlayer extends Player{
}
@Entity
@DiscriminatorValue(value = "KNIGHT_RIDERS")
public class KnightRidersPlayer extends Player{
}
@Entity
@DiscriminatorValue(value = "DARE_DEVILS")
public class DareDevilsPlayer extends Player{
}
Here, I am trying to fetch all team players at once
public interface PlayerDao extends CrudRepository<Player, Long>{
List<Player> findAll();
}
Sample PLAYER Table Data is
ID name year team
1000 gilchrist 2015 SUNRISERS
1001 Yuvraj 2015 SUNRISERS
1002 Ghambir 2015 KNIGHT_RIDERS
1004 Pathan 2015 KNIGHT_RIDERS
1006 Umesh 2015 KNIGHT_RIDERS
1007 Zaheer 2015 DARE_DEVILS
1008 Venu 2015 DARE_DEVILS
Once I get the complete list, how to prepare a Map in Java 8 with the key as Team name and value as a list of players corresponding to that team?