Don't test what's in the database. Just provide some examples of how your system delivers value.
If the value is genuinely in the database - for instance, another service uses that data - then describe the things your system provides in terms of that value. For instance:
- My system can save a user with his family of four children and a spouse in another country.
- My system can handle Japanese addresses.
- My system can provide historical price data.
If you really have to, you can then associate big chunks of data - rather than individual rows - with the domain concepts to which they match. Removing some of the duplication - putting it in custom test queries, for instance - will help to keep this less brittle.
If you can think of examples of the things your system provides then you can probably cover all the data it provides too.
Another way to make the tests still less brittle is to use your persistence layer or the persistence layer of the system you're serving (Hibernate, for instance) to translate the data back into domain objects which make more sense for these examples.
This will also help you check that the data you're providing is actually valuable, rather than simply there. If it's your own system you're providing value to, you can do this and retain complete freedom where the format used to store the data is concerned. You can also do things like:
- My system does not allow me to store children without a parent.
- My system does not allow addresses with more than 150 characters in a line.
and check for database exceptions - also allowing you to verify constraints.