1

私は単純なクラスを持っています:

class Song {
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
private long id;
private String composition;
private String performer;
private String version;
private int length; //  Length in seconds
private int rating; //  Rating

@OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
private Set<Source> sources;
...
}

H2 データベースにいくつかのレコードを永続化します。問題なくすべてのレコードのリストを取得できます(カウントも取得できます)が、「where」句を使用してクエリを実行すると、常に空のリストが取得されます。これは私が試したクエリです:

List<Song> result = (List<Song>) entityManager.createQuery("FROM Song WHERE performer = "artist").getResultList();

私は運なしで次のバージョンのクエリを試しました:

"SELECT s FROM Song s WHERE s.performer = 'artist'"
"FROM Song WHERE str(performer) like 'artist'"

この問題は私を夢中にさせています。何かが足りない気がします。

4

1 に答える 1

0

大文字と小文字が区別されます。db の値として「artist」があり、末尾にスペースなどはありませんか?

于 2013-08-21T19:47:47.780 に答える