今天我遇到了這個問題,無法解決它。 我有一個包含類域的項目。使用@Id替換Roo @Id Long id超類中的Integer id不會影響子類
@DiscriminatorColumn(name = "type_abrv", columnDefinition = "type_abrv", discriminatorType = DiscriminatorType.STRING)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Domain {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Size(max = 100)
private String description;
@Size(max = 10)
@Column(name = "ABRV")
private String abbreviation;
@ManyToOne(targetEntity = Domain.class, optional = true, fetch = FetchType.LAZY)
@JoinColumn(name = "id_parent", nullable = true, insertable = false)
@Cascade({ CascadeType.PERSIST })
private Domain parent = null;
@ManyToOne(targetEntity = DomainType.class, fetch = FetchType.LAZY)
@JoinColumn(name = "id_type", nullable = true, insertable = false, referencedColumnName = "id")
@Cascade({ CascadeType.ALL })
private DomainType type;
@Column(name = "ACTIVE")
private Boolean active;
}
在其他項目中,我想延長域名,例如:
@Entity
@RooJpaEntity
@DiscriminatorValue(value="MSGST")
public class MessageStatus extends Domain {
public static String TYPE_ABRV = "MSGST";
public static String PENDING = "PEND";
public static String PROCESSING = "IN_PROCESS";
public static String PROCESSED = "DONE";
}
的事情是,袋鼠正在產生含長ID的MessageStatus_Roo_Jpa_Entity而發生衝突時,我嘗試編譯項目。在BR
錯誤\ COM \ g4it \ UTIL \模型\域\ Domain.java :: 0不能用java重寫 java.lang.Integer中〜.model.domain.Domain.getId()。 lang.Long 〜.model.queueout.MessageStatus.getId()的返回類型不匹配
privileged aspect MessageType_Roo_Jpa_Entity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long MessageType.id;
public Long MessageType.getId() {
return this.id;
}
public void MessageType.setId(Long id) {
this.id = id;
}
...
}
所以,我的問題是:難道這是不可能的事,我想,或者我做錯了?解決方案是什麼?
我正在使用STO和Roo Add On,並用maven構建項目。包含Domain的項目作爲依賴項存在於其他項目的pom.xml文件中,以及STS的構建路徑。袋鼠的版本是1.2.3.RELEASE
不錯,我得到了一個消極的,但沒有任何意見,爲什麼... – elithin