Hello,
I have an Admin entity and an AdminOption entity.
When running the integration tests, I get the following exception:
Caused by: org.hibernate.exception.ConstraintViolationExcepti on: could not insert: [com.learnintouch.domain.AdminOption]
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityCons traintViolationException: Column 'admin_id' cannot be null
Does Roo handle test data fixtures for many to one relations ?
My entities were all generated from a database reverse engineering on a MySql schema.
I'm using Roo 1.2.1.RELEASE [rev 6eae723]
Here is more details on the tables structures and domain classes..
Code:mysql> desc admin; +------------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | version | int(10) unsigned | NO | | NULL | | | firstname | varchar(255) | NO | | NULL | | | lastname | varchar(255) | NO | | NULL | | | login | varchar(50) | NO | UNI | NULL | | | password | varchar(100) | NO | | NULL | | | password_salt | varchar(50) | YES | | NULL | | | super_admin | tinyint(1) | NO | | NULL | | | preference_admin | tinyint(1) | NO | | NULL | | | address | varchar(255) | YES | | NULL | | | zip_code | varchar(10) | YES | | NULL | | | city | varchar(255) | YES | | NULL | | | country | varchar(255) | YES | | NULL | | | email | varchar(255) | YES | | NULL | | | profile | text | YES | | NULL | | +------------------+------------------+------+-----+---------+----------------+ 15 rows in set (0.01 sec) mysql> desc admin_option; +----------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | version | int(10) unsigned | NO | | NULL | | | name | varchar(50) | NO | | NULL | | | admin_id | int(10) unsigned | NO | MUL | NULL | | | value | varchar(20) | YES | | NULL | | +----------+------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)Code:@RooJavaBean @RooToString @RooJpaActiveRecord(table = "admin") @RooDbManaged(automaticallyDelete = true) public class Admin { @Column(name = "profile", columnDefinition = "TEXT") private String profile; }Code:privileged aspect Admin_Roo_DbManaged { @OneToMany(mappedBy = "adminId") private Set<AdminOption> Admin.adminOptions; public Set<AdminOption> Admin.getAdminOptions() { return adminOptions; } public void Admin.setAdminOptions(Set<AdminOption> adminOptions) { this.adminOptions = adminOptions; } }Code:privileged aspect Admin_Roo_Jpa_Entity { declare @type: Admin: @Entity; declare @type: Admin: @Table(name = "admin"); @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Integer Admin.id; @Version @Column(name = "version") private Integer Admin.version; public Integer Admin.getId() { return this.id; } public void Admin.setId(Integer id) { this.id = id; } }Code:@RooJavaBean @RooToString @RooJpaActiveRecord(table = "admin_option") @RooDbManaged(automaticallyDelete = true) public class AdminOption { }Code:privileged aspect AdminOption_Roo_DbManaged { @ManyToOne @JoinColumn(name = "admin_id", referencedColumnName = "id", nullable = false) private Admin AdminOption.adminId; public Admin AdminOption.getAdminId() { return adminId; } public void AdminOption.setAdminId(Admin adminId) { this.adminId = adminId; } }Code:privileged aspect AdminOption_Roo_Jpa_Entity { declare @type: AdminOption: @Entity; declare @type: AdminOption: @Table(name = "admin_option"); @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Integer AdminOption.id; @Version @Column(name = "version") private Integer AdminOption.version; public Integer AdminOption.getId() { return this.id; } public void AdminOption.setId(Integer id) { this.id = id; } }


Reply With Quote
