You'll be hard pressed to find a group of players at the 2019 UEFA European U21 Championships with more top-flight experience than the Bundesliga's representatives.
bundesliga.com profiles the 35 Bundesliga players chosen to represent their countries in Italy and San Marino this month...
One to watch next season, Christoph Baumgartner made his Bundesliga debut on Matchday 33 of the 2018/19 Bundesliga campaign. He also started the final-day defeat to Mainz, having previously made 29 appearances for the Hoffenheim U19s and 14 for the reserves, producing 14 goals and 16 assists.
In Italy: Baumgartner was an unused substitute in Austria's 2-0 opening win over Serbia, he then came on from the bench against Denmark but saw a penalty saved in a 3-1 defeat. Baumgartner appeared in the 54th minute in the final Group B game against Germany, a 1-1 draw that left Austria in third place and out of the tournament.
Born in Austria to Ghanaian parents, Kevin Danso was a striker in Reading's youth academy, a midfielder in MK Dons', and now turns out at the heart of Augsburg's defence. Danso left England for Germany at 15, and played for the Augsburg U19s and reserves before making his Bundesliga debut in March 2017. He played in 18 Bundesliga games in 2018/19, and has already been capped six times at senior international level.
In Italy: Danso played from start to finish as his side kept a clean sheet in their opening win over Serbia. He also played the full 90 minutes in the 3-1 defeat to Denmark, before scoring from the penalty spot to put Austria 1-0 up in the 1-1 draw with Germany that sent them home from the competition.
Marco Friedl joined the Bayern Munich academy in 2008, at the same time as fellow countryman David Alaba - the club's first-choice left-back. With only a handful of competitive outings under his belt, he moved to Werder Bremen on loan in January 2018 - a deal that was made permanent at the end of the recently ended 2018/19 season. Friedl made seven Bundesliga and two DFB Cup appearances for the Green-Whites last term, and has represented Austria at every youth level from the U15s to the U21s.
In Italy: Friedl did not make it off the bench in Austria's 2-0 opening win over Serbia. He played all 90 minutes at left-back in the 3-1 defeat to Denmark, though, and did so again in the 1-1 draw with Germany.
After coming through the Rapid Vienna youth system, Philipp Lienhart joined Real Madrid's U19s at 17. He soon made the step up to the club's second team, Castilla, where he played under current first-team coach Zinedine Zidane. Lienhart took his search for regular first-team football to Freiburg in summer 2017, initially joining the Black Forest club on loan. He made 11 Bundesliga appearances in his debut season on Germany and a further 14 the following campaign after his loan deal was made permanent. The one-time senior Austria international captained the U21s in qualifying.
In Italy: Lienhart began in central midfield against Serbia, but was substituted off in the closing stages of the game. He scored the equaliser against Denmark and captained the team from midfield. The Freiburg man was once again skipper in midfield in Austria's last game against Germany.
Stefan Posch (Hoffenheim)
Bundesliga apps: 26
It has been quite the season for Stefan Posch. As well as playing in the UEFA Champions League group stage with Hoffenheim, the Wacker Mödling youth product was handed his senior international debut in Austria's UEFA Euro 2020 qualifying win over Macedonia on 10 June. Since making his Hoffenheim debut in a UEFA Europa League game against Ludogrets almost two years ago, he has amassed a further 32 competitive appearances for the club, including 16 Bundesliga starts under Julian Nagelsmann in 2018/19.
In Italy: Posh partnered Danso at the heart of the defence for the entire group stage, and did not miss a minute of action against Serbia, Denmark or Germany.
Dodi Lukebakio is fresh off a short but sweet loan spell in the Bundesliga with Fortuna Düsseldorf. The Watford forward hit 10 goals in 31 Bundesliga appearances, as well as four in the early rounds of the DFB Cup, as promoted Düsseldorf comfortably secured another campaign of top-flight football with room to spare. He has since returned to England - but he certainly won't be forgotten in a hurry. Scorer of a famous hat-trick in a 3-3 draw with Bayern Munich, the Belgian is the first and, as yet, only player to put three goals past Manuel Neuer in a Bundesliga match.
In Italy: Lukebakio played every minute of Belgium's three Group A games, but a trio of defeats left the side bottom of the standings and out of the tournament.
Watch: Lukebakio's hat-trick against Bayern
A graduate of the same Dinamo Zagreb academy that counts Luka Modric among its alumni, Josip Brekalo has been kicking about in the Bundesliga for almost three years. After helping VfB Stuttgart bounce back to the Bundesliga as 2016/17 Bundesliga 2 champions, he swept in to save parent club Wolfsburg's bacon the following May. The Croatian scored on the final day of the 2017/18 season and again in the relegation play-off as the Wolves avoided relegation by the skin of their teeth. Despite being something of a bit-part player in 2018/19, he produced three goals and as many assists in 25 Bundesliga appearances.
In Italy: Brekalo went off injured after just 14 minutes against Romania and was expected to be out for a while, but made a surprise recovery as a 63rd-minute substitute in Croatia's next game against France. That result left the side out of the competition ahead of their final game against England. Nevertheless, Brekalo scored twice as the Balkan side came from behind on three occasions to salvage a 3-3 draw.
Andreas Poulsen has been a mainstay in the Denmark youth set-up for a number of years, debuting for the U21s in September 2018. He had joined Borussia Mönchengladbach from FC Midtylland two months earlier, but the closest he got to the first team in his first season in Germany was as an unused substitute on Matchdays 1 and 2. Poulsen did, however, make 14 appearances for the Gladbach reserves in Germany's fourth tier.
It Italy: Poulsen was an unused substitute in all three of the Scandinavians' games against Germany, Austria and Serbia as they finished runners-up to Germany.
After a short loan stint at Stuttgart, Jacob Bruun Larsen came of age at Borussia Dortmund in 2018/19. The Danish flier made 24 appearances under Lucien Favre, chiming in with two goals and two assists as BVB fell just short of a first Bundesliga title since 2012. Bruun Larsen also featured five times in the Champions League, and was rewarded with a maiden senior international call-up for Denmark's March friendly draw with Kosovo.
It Italy: Bruun Larsen started on the left side of attack in a 4-3-3 formation against Germany, but was taken off on 80 minutes. He was substituted after 88 minutes against Austria. The Dortmund youngster played the full 90 minutes in his side's third group game against Serbia, scoring the opener in a 2-0 win in the 21st minute.
Despite his young age, 20-year-old Ibrahima Konate has already collected three seasons of professional experience in France and Germany. The 6'4" man mountain was eased in at Leipzig last season after catching the eye at Sochaux, before turning out 28 times as an integral part of the German top tier's stingiest defence in 2018/19. The Frenchman won 65 per cent of his attempted challenges and landed 82 per cent of his attempted passes.
In Italy: Played 90 minutes alongside Leipzig teammate Upamecano in central defence as France secured a dramatic late win over England. The pair did the same in their win over Croatia in game two and again in the 0-0 draw against Romania that sealed France's spot in the semi-finals as the best group runners-up.
France were defeated 4-1 by Spain in the semi-final, with Konate involved for the full 90 minutes.
News of Jean-Philippe Mateta putting pen to paper on a one-year contract extension on the eve of the U21 Euros will have come as music to the ears of Mainz fans. The French forward was a revelation after joining the club from Lyon last summer, plundering 14 goals in 34 Bundesliga appearances. The 6'3" front man's hat-trick in Mainz's joint-highest Bundesliga victory - 5-0 against Freiburg - set a new record for most debut season goals by a Frenchman in the Bundesliga.
In Italy: Came off the bench to force the own goal for France's 95th-minute winner against England. He was an unused substitute against Croatia, but played the full 90 minutes against Romania. He started in the semi-final against Spain, but was substituted on 71 minutes as France went out of the competition.
Watch: Mateta's hat-trick against Freiburg
Moussa Niakhate (Mainz)
Bundesliga apps: 33
After Abdou Diallo's move to Borussia Dortmund, Mainz found a ready-made replacement in former Metz defender Moussa Niakhate. The 23-year-old started 32 of the 05ers' 34 Bundesliga assignments in 2018/19, winning a hearty 84 per cent of his attempted challenges, and adds to an embarrassment of Bundesliga-based riches in the France U21 squad.
In Italy: Was an unused sub in all three group games against England, Croatia and Romania, as well as the semi-final against Spain.
Dayot Upamecano (RB Leipzig)
Bundesliga apps: 55
Dayot Upamecano has always been ahead of the curve, moving from French club Valenciennes to Red Bull Salzburg at the age of only 16, before joining sister outfit Leipzig in January 2017. He's been a firm first-team fixture ever since and, while he doesn't turn 21 until October, has already racked up priceless top-level experience in the Bundesliga, DFB Cup, Champions League and Europa League. He has represented France since U16s level, and will almost certainly make the leap to the senior squad before long.
In Italy: Played 90 minutes alongside Leipzig teammate Konate in central defence as France secured a dramatic late win over England. He partnered his teammate again against Croatia and Romania. France were defeated 4-1 by Spain in the semi-final, with Upamecano involved for the full 90 minutes.
Nadiem Amiri (Hoffenheim)
Position: Central midfielder
Bundesliga apps: 106
Amiri has been strutting his stuff in Germany’s big league since making his debut on 7 February 2015 against Wolfsburg. The son of Afghan parents, who fled their war-torn country in the 1980s, broke the 100-appearance barrier in 2018/19, and came into his own towards the end of the campaign with four goals in his last four league games for Hoffeneheim.
In Italy: Started on the bench against Denmark, before replacing Marco Richter in the 70th minute. He was a half-time substitute for Levin Öztunali in the 6-1 thrashing of Serbia and came on for Richter again in their final group game against Austria. Started the semi-final against Romania, opening and closing out the scoring in a 4-2 win. Amiri was once again in the first XI in the final against Spain and scored a late consolation in Germany's 2-1 defeat.
Mahmoud Dahoud (Borussia Dortmund)
Position: Central midfielder
Bundesliga apps: 98
Mahmoud Dahoud faced some serious competition for places in the Dortmund midfield from Thomas Delaney and Axel Witsel in 2018/19, but the Syria-born midfielder rose to the challenge. He was by no means a regular but, playing under Lucien Favre - the man who gave him his Bundesliga debut at Borussia Mönchengladbach in 2015 - put in some typically industrious displays in the 14 league games he was called upon.
In Italy: Began in central midfield in the 3-1 win over Denmark before making way for Suat Serdar on 79 minutes. The Dortmund star played the full 90 minutes in the matches against Serbia and Austria as Germany topped Group B. Started and won a penalty for Germany's equaliser in their eventual 4-2 against Romania and played the full 90 minutes in the 2-1 defeat to Spain in the final.
Johannes Eggestein (Werder Bremen)
Bundesliga apps: 30
The younger brother of Maximilian Eggestein, Johannes boasted an extraordinary scoring record at youth level with Bremen. He rattled off 41 goals in 51 appearances for the U17s and 42 goals in 33 outings for the U19s, before making the step up from the reserves to the first team early in 2017/18. He's had to play second fiddle to the likes of Claudio Pizarro and Max Kruse at times, but still managed to hit four goals in 23 Bundesliga appearances in 2018/19.
In Italy: An unused substitute in all five games.
Maximilian Eggestein (Werder Bremen)
Position: Central midfielder
Bundesliga apps: 91
Maximilian Eggestein's performances for Werder Bremen in 2018/19 drew some favourable comparisons with Germany midfielder Toni Kroos. Still only 21, Eggestein made his Bundesliga debut back in 2014, but it wasn’t until the latter half of the 2016/17 campaign that he finally made his breakthrough. He didn't miss a kick in 2018/19, scoring five goals and producing five Bundesliga assists - efforts which were rewarded with a call-up to the senior Germany squad back in March.
In Italy: Tidy as ever in central midfield against Denmark and played from start to finish, even teeing up Marco Richter to score the opener in the 28th minute. He also started against Serbia and Austria, but was taken off in the second half of both matches. Played 88 minutes of the semi-final and 78 of the final.
Watch: Maximilian Eggestein's January Goal of the Month winner
Lukas Klostermann (RB Leipzig)
Bundesliga apps: 53
Lukas Klostermann reached the DFB Cup final with RB Leipzig in May, and made his second appearance for Germany in Euro 2020 qualifying at the start of June. He looks set to have a long and prosperous career ahead of him for club and country, having already represented Die Mannschaft at U16, 17 and 19 level, as well as at the 2016 summer Olympics. He has a nose for goal, too, with five strikes in 26 Bundesliga outings in 2018/19 alone. Not bad for a right-back!
In Italy: Played the full 90 in each game throughout the tournament.
Robin Koch (Freiburg)
Bundesliga apps: 50
Robin Koch - as his German surname might suggest - has been cooking up a storm at Freiburg. And we're not talking about his take on Black Forest Gateau! The 6'3" centre-back made 26 Bundesliga appearances in his second season at the club, winning an encouraging 55 per cent of his attempted aerial challenge as part of a Freiburg side that finished eight points clear of the drop zone. He's got football in his blood: Dad Harry also played centre-half for Kaiserslautern and Eintracht Trier - Robin's pre-Freiburg employers.
In Italy: An unused substitute in the wins over Denmark and Serbia, Koch came off the bench for Maximilian Eggestein in the 83rd minute against Austria and the 4-2 victory over Romania in the semis. He did not feature in the final.
Eduard Löwen experienced the highs of promotion to the Bundesliga and the disappointment of relegation to Bundesliga 2 in a whirlwind 12-month period at Nuremberg. He won't be joining Der Club in the second tier, though, after sealing a move to Hertha Berlin in June. A tenacious midfielder who can also operate in the centre of defence, the 22-year-old is the ideal replacement for club legend Fabian Lustenberger, not to mention a real asset for Germany U21 coach Stefan Kuntz.
In Italy: An unused substitute all five games.
Arne Maier (Hertha Berlin)
Bundesliga apps: 42
It speaks volumes for Maier's talent that he made his Bundesliga debut as a fresh-faced 18-year-old in May 2017. Hard working and a tireless runner, Maier is a defensive midfielder by trade and made 24 Bundesliga outings in 2018/19, despite two spells on the sidelines with groin and ligament injuries.
In Italy: Partnered Maximilian Eggestein in holding midfield in the first half against Denmark, but was replaced by Florian Neuhaus at the interval. Maier came off the bench to score the last goal in the 6-1 win over Serbia, but did not feature against Austria. He made a late cameo against Romania, but was an unused substitute in the final.
Maximilian Mittelstadt (Hertha Berlin)
Bundesliga apps: 51
Mittelstädt likewise made his top-flight bow at the age of 18 in March 2016, the same year he won the bronze Fritz-Walter Medal. The Berlin native is able to play both in defence and in midfield, his versatility highly prized for both club and country. After mainly being used as a squad player prior to 2018/19, last season he made 25 Bundesliga appearances, chipping in with a goal and an assist to boot.
In Italy: An unused substitute in all three group games, before making his tournament debut in the semi-final win against Romania. He did not feature in the final against Spain.
Florian Müller (Mainz)
Bundesliga apps: 29
Florian Müller arrived at Mainz at the age of 16 in 2013 and after working his way up through the youth ranks, was promoted to the first-team squad in 2016. He made his Bundesliga debut in a 0-0 draw with Hamburg on Matchday 25 in 2017/18 and after impressing late in that season, was named as Mainz's No1 for the 2018/19 campaign. He played a major role in helping the 05ers finish 15 points clear of the relegation zone, only missing out on action due to a lengthy ligament injury.
In Italy: An unused substitute at the finals.
It's not just Alexander Nübel's Royal-Blue upbringing that has earned him 'next Manuel Neuer' billing. At 22, the 6'4" custodian has already bolted down Schalke's No.1 jersey, thanks to some commanding performances between the posts in only his fourth year since joining the Ruhr district club from Paderborn as a teenager. He is also looking to emulate Neuer internationally, the Bayern great having claimed U21 Euro gold with Germany in 2009.
In Italy: Did not missed a minute of the tournament at all.
Florian Neuhaus (Gladbach)
Position: Attacking midfield
Bundesliga apps: 32
Those in the know in German football have been aware of Neuhaus' gifts for some time now, but it wasn't until a loan spell at Fortuna Düsseldorf in Bundesliga 2 that he truly began to flourish. Gladbach wasted little time in bringing the youngster back to Borussia-Park for 2018/19, where he continued his match-winning displays for the Foals. He had not set foot in Germany's top flight prior to that season, but you couldn't have noticed: three goals and eight assists in 32 league appearances helped Gladbach qualify for Europe in fifth.
In Italy: Came on for Maier in central midfield at half-time against Denmark, before starting Germany's three subsequent matches against Serbia, Austria and Romania. Replaced Suat Serdar in the 61st minute of the final against Spain.
Levin Öztunali (Mainz)
Bundesliga apps: 126
One of the most experienced players at the tournament, let alone Germany's squad, if it feels like Öztunali's been around for ages it's because he has: he had his first taste of Bundesliga football aged 17 in 2013. Although he struggled for form in 2018/19 after missing much of the early season to injury, he still made 15 outings. When fit and firing, Öztuali's pace, willingness to take on his marker and eye for goal are a real weapon.
In Italy: Öztunali started all five of Germany's games.
Marco Richter (Augsburg)
Bundesliga apps: 37
At Augsburg since 2012, Marco Richter was brought in from the cold in Bavarian minnows' hour of need towards the tail-end of 2018/19. The former Bayern youth player scored his first-ever Bundesliga brace in a shock win over top-four candidates Frankfurt on Matchday 29, before bringing up another double a week later as Augsburg measured 6-0 on the Richter scale against Stuttgart. He also weighed in with six assists to help Die Fuggerstädter skip the trap door.
In Italy: Richter continued his habit of scoring braces by netting twice in the 3-1 win over Denmark, and also provided the assist for Waldschmidt to grab Germany's third. He broke the deadlock in the 6-1 win over Serbia and also started against Austria, but was an unused substitute in the semi-finals. He came off the bench for the last 18 minutes of the final.
Watch: Richter's double in the thrashing of Stuttgart
Suat Serdar (Schalke)
Position: Central midfielder
Bundesliga apps: 71
Suat Serdar moved to the Mainz academy when he was 11 and played in every one of the 05ers' youth teams, before switching to Schalke last summer. He enjoyed a regular run in the side towards the end of the season under interim coach Huub Stevens, scoring his first goal for the club in a crucial relegation six-pointer against Hannover on Matchday 27, before bringing fierce rivals Dortmund to their knees - drawing the fouls that saw Marco Reus and Marius Wolf sent off - in an unforgettable Revierderby.
In Italy: Came off the bench for Dahoud in the 79th minute against Denmark. He did not feature against Serbia, but was a second-half substitute against Austria before returning to the bench in the last four. Serdar started in midfield in the final, but made way for Neuhaus on 61 minutes.
Germany's answer to the world's strongest man, not much gets past Jonathan Tah. The 6'5" behemoth provided the firm foundation on which Bayer Leverkusen's late and successful push for a top-four finish was built, and has appeared in three of Germany's last six internationals. At 22, he's already got five years' experience at the highest level under his belt and boasts all the tools needed to become one of the best central defenders in the business.
In Italy: Imperious, unflustered and a leader from the back, Tah captained the side in all five games and played throughout each time.
Felix Uduokhai (Wolfsburg)
Bundesliga apps: 30
Felix Uduokhai is another gifted player to emerge from the very same 1860 Munich academy that spawned Bender twins, Sven and Lars, Kevin Volland (all Leverkusen) and Julian Weigl (Dortmund), among others. At 6'3", he's similar in stature to U21 teammate Tah and 2014 World Cup winner Jerome Boateng, and has the added bonus of being able to play at left-back. He's been at Wolfsburg since summer 2017.
In Italy: An unused substitute in all five games at the finals.
Luca Waldschmidt (Freiburg)
Bundesliga apps: 80
Luca Waldschmidt fell one goal short of double figures in 2018/19, but still outscored Nils Petersen at the top of the Freiburg scoring charts. What is more, he did so despite making just 16 Bundesliga starts. The former Frankfurt and Hamburg forward - scorer of three goals in 10 U21 internationals - also chimed in with three assists.
In Italy: Played at the tip of a 4-2-3-1 formation against Denmark and his tireless movement was rewarded in the 65th minute when he finished off a lightning-fast counter attack with a cool dink the ball over the goalkeeper. Another player yet to miss a minute of action, he scored a hat-trick against Serbia, an outrageous long-distance effort to break the deadlock against Austria and a brace in the semi-final win over Romania to take his tournament tally to seven. Waldschmidt was unable to find the target in 90 minutes in the final, but nevertheless ended as the competition's top scorer.
Dawid Kownacki (Fortuna Düsseldorf)
Bundesliga apps: 10
One of the key figures behind Düsseldorf's remarkable rise from relegation candidates to being guaranteed a place in the Bundesliga next season was winter recruit Dawid Kownacki. The young striker, who has his sights set on emulating Robert Lewandowski, scored four times in 10 Bundesliga appearances following his January move from Serie A side Sampdoria, and has already won four senior international caps.
In Italy: Poland's captain started both wins over Italy and Belgium, but was unused against Spain as his side ended in a three-way tie at the top of Group A, finishing third - and therefore out of the competition - on goal difference.
Joveljic was born in Bijeljina, now in Bosnia-Herzegovina, in 1999, and made the two-hour journey east to Belgrade at the age of 10, when he signed with Red Star's youth academy. He raced through the underage teams in the Serbian capital, making his senior debut in a 3-0 win over Borac Cacak in December 2017 just four months past his 18th birthday. Three goals in four starts in the 2017/18 campaign hinted at the agile 5'9"-tall forward's promise, and he added eight more in 17 league games - nine of them starts - last term to earn a move to Frankfurt to replace Real Madrid-bound compatriot Luka Jovic.
It Italy: Joveljic was an unused substitute in his country's 2-0 opening defeat against Austria. He replaced Luka Jovic in the 69th minute against Germany, and made a late cameo in their final game against Denmark. Serbia ended up bottom of Group B after failing to pick up a point.
Jorge Mere (Cologne)
Bundesliga apps: 22
Jorge Mere's debut season in Germany yielded 22 Bundesliga appearances, but ended in relegation to the second tier. His second produced 26 starts and promotion back to the big time, as Bundesliga 2 champions. The ex-Sporting Gijon defender made four appearances at the 2017 U21 Euros, where Spain lost 1-0 to Germany in the final.
In Italy: The Cologne defender has played every minute of Spain's campaign, losing 3-1 to hosts Italy, beating Belgium 2-1 and thumping Poland 5-0 to top Group A. He was an unused substitute in the semi-final win over France and in the final against Germany.
Aaron Martin (Mainz)
Bundesliga apps: 33
Mainz wasted no time in making Aaron Martin's temporary move from Espanyol permanent. There was a clause in his loan deal that meant an obligatory purchase option would be triggered when the Spaniard hit 10 appearances, which he succeeded in doing by mid-October 2018. Martin only missed one league game all season, delivering five assists via his oh-so trusty left boot.
In Italy: The left-back played 90 minutes in the opening loss to Italy but did not feature against Belgium. He returned to play the full game against Poland to complete the group stages, but was once again left on the bench in the semi-final win over France and in the final against Germany.
Uefa rules state players are eligible to play in the competition if they were born on or after 1 January 1996. The competition is held every two years and the qualification process for the 2019 tournament began in 2017. Players had to be 21 or under at the start of that year.