Remove core from cabbage. In a large pot, bring to boil enough water to cover cabbage. Add 2 tablespoons salt and 1/4 cup vinegar to boiling water. Immerse cabbage in boiling water. Cover and cook over medium-high heat 5 to 7 minutes. With fork or tongs, gently remove leaves as they become tender. Drain well; let cool. Trim main leaf vein so it is flat like rest of cabbage leaf.
In a large frying pan over medium heat, add oil, onions, celery, bacon, salt, pepper, paprika, parsley leaves and saute until light golden brown. Remove from heat and let cool for 1/2 hour.
Add ground pork, rice and sauteed onions together along with 1/2 cup water, and mix well. This is the meat filling.
Place 1 to 2 tablespoons of the meat filling in center of cabbage leaf. Fold right hand side of leaf over filling, then roll from base to bottom of leaf, then with index finger gently tuck left hand side of leaf into cabbage roll to make a nice neat roll. Squeeze juice out of sauerkraut and place 1/2 of jar on bottom of pot. Chop any leftover cabbage and place on top of sauerkraut. Place pork hock on top of sauerkraut. Arrange cabbage rolls, seam side down in pot in neat layers. Place them loosely touching each other and layer on top of one another. Sprinkle with salt between layers. Place second half of sauerkraut on top of cabbage rolls. Spread tomato sauce and tomato juice over kraut and place 1 bay leaf (and optional dill sprig) on top. Cover rolls with water just enough to cover rolls. Place heavy dish on top making sure there is a couple inches between plate on top of pot. Cover pot and bring to boiling and reduce heat to simmer and cook for about 2 hours.
Serve with sour cream and mamaliga for a real romanian dish.