0
public ChatRoomUserHelper isUserSubscribe(){
Transaction transaction = null;
ChatRoomUserHelper userHelper = null;
try (Session session = HibernateUtil.getSessionFactory().openSession()) {
transaction = session.beginTransaction();
userHelper = (ChatRoomUserHelper) session.createSQLQuery("SELECT * FROM CHATROOM_USERHELPER WHERE CHAT_ROOMNAME ='chatdlya3uuid' AND USER_NICKNAME ='nikita555' and STATUS = 'subscribe'").
addEntity(ChatRoomUserHelper.class);
session.getTransaction().commit();
}catch (RuntimeException e){
if(transaction!=null){
transaction.rollback();
}
e.printStackTrace();
}
return userHelper;
}
これは、ハードコードされたChatRoomUserHelperオブジェクトを返す私のメソッドです。 私のプロジェクトPOJOクラスChatRoomUserHelperです。HibernateネイティブSQLクエリが正常に動作しない
@Entity
@Table(name = "CHATROOM_USERHELPER")
@Embeddable
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ChatRoomUserHelper {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public int id;
@Column(name = "CHAT_ROOMNAME")
private String chatRoomName;
@Column(name = "USER_NICKNAME")
private String userNickName;
@Column(name = "STATUS")
private String userStatus;
public ChatRoomUserHelper(String chatRoomName,String userNickName){
this.chatRoomName = chatRoomName;
this.userNickName = userNickName;
this.userStatus = "subscribe";
}
public ChatRoomUserHelper(){}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getChatRoomName() {
return chatRoomName;
}
public void setChatRoomName(String chatRoomId) {
this.chatRoomName = chatRoomId;
}
public String getUserNickName() {
return userNickName;
}
public void setUserNickName(String userNickName) {
this.userNickName = userNickName;
}
public String getUserStatus() {
return userStatus;
}
public void setUserStatus(String userStatus) {
this.userStatus = userStatus;
}
} My Table with rows 私はIntellijIdeaとMySQLワークベンチでこのメソッドを実行すると、それが正常に動作します。
しかし、私はプログラムの中で、このメソッドを使用する場合、それは私が他のすべてのために、その上のセッションファクトリーとの初期化中にその問題を知らない
を私が欲しいと仕事をしたいとロールバックしません。ものはうまく動作します。このクエリでの問題が、私はこの問題を解決する方法がわからない
2016-04-18 13:24:52 DEBUG TransactionImpl:51 - begin
2016-04-18 13:24:52 DEBUG TransactionImpl:86 - rolling back
2016-04-18 13:25:14 DEBUG DriverManagerConnectionProviderImpl:49 - Connection pool now considered primed; min-size will be maintained
それは私があなたの代わりにこのラインを試してみたいことがあり
残念ながらそれは私を助けません( –
ここでキャッチした 'StackTrace'を共有できますか? – ayoub