Personalized review generation is significant for e-commerce applications, such as providing explainable recommendation and assisting the composition of reviews. With the success of pre-trained language models (PLMs), prompt learning-based approaches have been employed to handle this task. However, the existing approach neglects the historical user-item interactions as well as the diverse semantics of the reviews (including semantically relevant reviews and semantically irrelevant reviews). In this paper, we propose GRAPA, a graph-enhanced prompt learning approach for personalized review generation. Specifically, GRAPA extracts topic-level information for each review to address the semantic diversity of reviews. Moreover, GRAPA employs a heterogeneous graph neural network (GNN) to explore the collaborative information hidden in historical user-item interactions. User and item representations generated by the GNN module as well as their ID embeddings are used as prompts and fed into a PLM to guide the generation process. To alleviate the interference of semantically irrelevant reviews, GRAPA further proposes a contrastive learning module to distinguish them. Experimental results on public datasets show that GRAPA outperforms existing methods by up to 4.3% in BLEU-4 and 5.4% in ROUGE2-F.