He's only 7 months old, so he's still young. But taking the water away after dinner, and more exercise would help. A tired dog is always a better sleeper. And allowing him to sleep with you all night might work too. Just make sure he relieves himself right before bed.(as late as possible). Mine were between 9-12 mos. old before they slept through the night.