2016-11-02 13 views
0

を決めることができませんでした:Hibernateは、私はこのエラーとこだわっているタイプ

org.hibernate.MappingException: Could not determine type for: com.mywebsite.entity.Image, at table: User, for columns: [org.hibernate.mapping.Column(profilePhoto)] 

私はそれが多くのことを尋ねてきた知っているが、私はこれにこだわっています。それは時間しようとしてと私は仕事何かを見つけることができませんが...ここで

は私の2クラスである:

@Entity 
public class Image extends com.mywebsite.entity.Entity{ 

    //System 
    @Id 
    @GeneratedValue 
    private int id; 
    [...] 

} 


@Entity 
public class User extends com.mywebsite.entity.Entity{ 

    //System 
    @Id 
    @GeneratedValue 
    private int id; 
    [...] 

    //Data 
    private Image profilePhoto;  
    [...] 

} 

誰かが私を助けることができますか?

+1

この行の前に注釈がありませんか? 'プライベートImage profilePhoto;' –

+0

[可能重複](http://stackoverflow.com/questions/26416881/hibernate-mapping-exception-could-not-determine-type-for) –

+0

私はそこに "プライベートStringパスワード; " – Antoine

答えて

1

EDIT:

はこれを試してみてください:

@ManyToOne 
@JoinColumn(name="profilephoto_id", foreignKey = @ForeignKey(name = "put_name_here_If_You_HaveAForeignKeyConstraint"))  
private Image profilePhoto; 

ORIGINAL:


the docsから:

すべての非静的非過渡プロパティ(フィールドやメソッドが依存しますアクセスタイプ)は、@Transientと注釈を付けない限り、永続的であるとみなされます。

Hibernateは、フィールドがデータベースのものだと考えて、テーブル内のその列を見つけようとしています。その列が存在せず、そうでなければならない場合は、@Columnのような注釈マッピングが必要です。データベースに存在せず、存在してはいけません。その場合は、ドキュメントの示唆しているように@Transientを使用してください。

+0

あなたが言ったように@Column(name = "profilephoto_id")を追加し、エラーが少し変わる:com.mywebsite.entity.Image、at table:User、columns:[org.hibernate.mapping.Column(profilephoto_id) ]。テーブルユーザーの列名は「profilephoto_id」です。 – Antoine

+0

"foreignKey"を追加する必要はありませんでした。私はなぜjoincolumnが必要だが、なぜmanytooneが必要なのかを理解していないのですか? – Antoine

+0

エンティティ間の関連付けを宣言します。 –

関連する問題