﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-jack-wang-随笔分类-JPA</title><link>http://www.cppblog.com/jack-wang/category/21389.html</link><description>小王</description><language>zh-cn</language><lastBuildDate>Tue, 27 Aug 2019 11:27:16 GMT</lastBuildDate><pubDate>Tue, 27 Aug 2019 11:27:16 GMT</pubDate><ttl>60</ttl><item><title>JPA：表中如果有多个主键时，运行报错Composite-id class must implement Serializable</title><link>http://www.cppblog.com/jack-wang/archive/2019/08/24/216738.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sat, 24 Aug 2019 08:25:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2019/08/24/216738.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/216738.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2019/08/24/216738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/216738.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/216738.html</trackback:ping><description><![CDATA[ 在主键类添加implements Serializable 

表中如果有多个主键：

@Entity
@IdClass(TestPK.class)
@Table(name = "test")
public class TestEntity{
    @Id
    @Column(name = "a")
    private int a;

    @Id
    @Column(name = "b")
    private int b;
}

public class TestPK implements Serializable {
    private int a;
    private int b;

    public TestPK() {
    }

    @Override
    public int hashCode() {
        ,,,
    }

    @Override
    public boolean equals(Object obj) {
        ,,,
    }
} <img src ="http://www.cppblog.com/jack-wang/aggbug/216738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2019-08-24 16:25 <a href="http://www.cppblog.com/jack-wang/archive/2019/08/24/216738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JPA：Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.***.***.entity.User com.***.***.repository.UserRepository.findFirstByPhone_no(java.lang.String)</title><link>http://www.cppblog.com/jack-wang/archive/2019/08/24/216737.html</link><dc:creator>小王</dc:creator><author>小王</author><pubDate>Sat, 24 Aug 2019 08:04:00 GMT</pubDate><guid>http://www.cppblog.com/jack-wang/archive/2019/08/24/216737.html</guid><wfw:comment>http://www.cppblog.com/jack-wang/comments/216737.html</wfw:comment><comments>http://www.cppblog.com/jack-wang/archive/2019/08/24/216737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jack-wang/comments/commentRss/216737.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jack-wang/services/trackbacks/216737.html</trackback:ping><description><![CDATA[UserEntity实体类中定义成员变量名带有下划线，例如：
@Entity
@Table(name = "user")
public class UserEntity {

@Column(name = "phone_no")
private String phone_no;

}


UserRepository类中定义查询方法：
public interface UserEntityRepository extends CrudRepository<UserEntity, Integer> {
    UserEntity findByUsername(String username);
}

运行后报错，错误内容如标题所示。
去掉UserEntity中成员变量 phone_no的下划线，改成 phoneno。
运行正常！
O了！

尼玛JPA真坑你爹啊！

 <img src ="http://www.cppblog.com/jack-wang/aggbug/216737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jack-wang/" target="_blank">小王</a> 2019-08-24 16:04 <a href="http://www.cppblog.com/jack-wang/archive/2019/08/24/216737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>