YAML - 一对多对象图

时间:2010-07-20 16:05:24

标签: yaml snakeyaml

我使用基于snakeyaml(java)的解析器编写测试用例,但无法弄清楚如何正确构建图形。任何帮助,高度赞赏。感谢。

RuntimeException occured : Cannot load fixture test-data.yml: 
org.hibernate.PropertyAccessException: could not get a field value by 
reflection getter of models.Priority.description

以上例外是针对一个不相关的字段,如果我有效,它就有效 删除关联

roles: 
  - roleType: testRoleType 
    description: desc 

如果我将其更改为

- !models.Role 
      roleType:         testRoleType 
      description: desc 

发生RuntimeException:无法加载fixture test-data.yml:null; 无法为!models.Role构造java对象;例外= onRole 任何帮助,高度赞赏。谢谢。

public class Person {
String fullname;

@OneToMany(cascade=CascadeType.ALL)
public List<Role> roles;
}

public class Role {
public RoleType roleType;
public String description;
}

public class RoleType {
public String roleName;
public String description;
}


YAML--

RoleType (testRoleType):
    roleName:      test
    description:   desc

Person(administrator):
    fullname:       Administrator
    roles:
      - roleType: testRoleType
        description: desc

1 个答案:

答案 0 :(得分:1)

1)创建图表

2)使用SnakeYAML序列化对象:

JavaBeanDumper dumper = new JavaBeanDumper();
String output = dumper.dump(graph);

3)看看它是什么并手动更改。

P.S。 !models.Role是一个本地标签,您应该指示SnakeYAML如何管理它。