I don't believe the Roo table is set up for this kind of thing. This structure you're showing is an internally owned/managed set. When you update it, I think Hibernate would delete/insert all rows, managing the keys itself.
What do you want to do with this set? Make it editable? Just show it as a read-only list?
For read-only lists, you could just iterate over the collection with c:forEach from the EL tag library - they do that in the Spring table.tagx tag anyway if you want to pull the syntax.
side note - why does a collection column have length and not null?
@JoinTable( name = "principalpermission",
joinColumns = @JoinColumn(name = "principal"))
@OrderColumn(name = "permission_index")
@Column(name = "permission")
private Collection<String> permissions = new ArrayList<String>();
Now JPA manages them in the proper order, since there is an internal index column. So, whatever order you return them in, it will delete/insert them in the same order going forward.
Now, to showing the collection:
You can just mount the standard el tags and do a c:forEach tag to iterate the items. Nothing stopping you there.
You're probably on your own, even if these are entities, unless you are just showing the entities themselves. The Roo tags are very specifically able to support basic entity / collection structures, but aren't as flexible as just directly using the Spring MVC forms library.