2011-07-06 11 views
2

私はSpringフレームワークに基づいた簡単なWebアプリケーションを開発しています。抽象クラスとバグの問題

import javax.persistence.*; 
import java.util.Date; 

/** 
* Abstract class for all publications of BIS 
* @author Tomek Zaremba 
*/ 

public abstract class GenericPost { 

@Temporal(TemporalType.DATE) 
@Column(name = "date_added") 
private Date dateAdded; 

@Column(name = "title") 
private String title; 

@Column(name = "description") 
private String description; 

/** 
* 
* @return title of publication 
*/ 
public String getTitle() { 
    return title; 
} 

/** 
* 
* @param title to be set for publication 
*/ 
public void setTitle(String title) { 
    this.title = title; 
} 

/** 
* 
* @return description of publication 
*/ 
public String getDescription() { 
    return description; 
} 

/** 
* 
* @param description of publication 
*/ 
public void setDescription(String description) { 
    this.description = description; 
} 

/** 
* 
* @return date when publication was added 
*/ 
public Date getDateAdded() { 
    return dateAdded; 
} 

/** 
* 
* @param dateAdded set the date of adding for publication 
*/ 
public void setDateAdded(Date dateAdded) { 
    this.dateAdded = dateAdded; 
} 
} 

と別:

import javax.persistence.*; 
import java.io.Serializable; 

/** 
* Instances of Link represents and collects data about single link stored in BIS database 
* @author Tomek Zaremba 
*/ 
@Entity 
@Table(name="Link", schema="public") 
public class Link extends GenericPost implements Serializable{ 

@Id 
@Column(name="id", unique=true) 
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="link_id_seq") 
@SequenceGenerator(sequenceName="link_id_seq", name="link_id_seq") 
private Integer id; 

@Column(name="link") 
private String link; 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "author_user_id") 
private User user; 

/** 
* 
* @return id of link 
*/ 
public Integer getId() { 
    return id; 
} 

/** 
* 
* @param id to be set to link 
*/ 
public void setId(Integer id) { 
    this.id = id; 
} 

/** 
* 
* @return link which is connected with Link instance 
*/ 
public String getLink() { 
    return link; 
} 

/** 
* 
* @param link to be set fo Link instance 
*/ 
public void setLink(String link) { 
    this.link = link; 
} 

/** 
* 
* @return User instance connected with Link instance 
*/ 
public User getUser() { 
    return user; 
} 

/** 
* 
* @param user to be set for Link instance 
*/ 
public void setUser(User user) { 
    this.user = user; 
} 
} 

問題がある:私は、マッピングデータベーステーブルの応答であるこれら2つのファイルを持っている私は、ジェネリッククラス(ゲッター)からのメソッドを使用していたときに、なぜ私は常に取得しますnullと私がリンククラスからゲッターを使用するとき、私は正しいデータを取得?データベースへのアクセスは問題ありません.Junitテストはエラーなしで行われます。手伝ってくれてありがとう。

+0

これはSpringとSpring-MVCとは関係ありません。これらのクラスはJPAエンティティです。 –

答えて

0

GenericPostクラスには、@MappedSuperclassという注釈を付ける必要があります。そうでなければ、その永続性の注釈はマッピングによって考慮されません。

注:おそらく、スーパークラスフィールドのマッピングが期待通りに機能するかどうかを確認するためにユニットテストを更新する必要があります。

+0

ご協力ありがとうございます、今すぐ期待どおりに動作します。 – tomi891

0

私はそれが春のせいだとは思わない。親クラスにannotateする必要があります@MappedSuperclass

関連する問題