Mitre openid

https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server

https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/wiki/Server-configuration

Posted in ไม่มีหมวดหมู่ | Leave a comment

“เรียนแล้วเล่น” วงจรชีวิตมันๆ

“เรียนแล้วเล่น” วงจรชีวิตมันๆ

คุณเรียนหนักไปหรือเปล่า? เพราะวันนี้การเรียนๆ เล่นๆ เป็นอีกหนทางหนึ่งที่ทำให้วัยรุ่นได้ผ่อนคลาย และทำสิ่งต่างๆ ได้ดีขึ้น และไม่เบื่อหน่ายจนเกินไป

เรียนบ้าง เล่นบ้าง ชีวิตอาร์ตๆ ช่วงวัยรุ่น

หากคุณเป็นอีกคนหนึ่งที่หมกมุ่นอยู่แต่กับการเรียน เราขอบอกว่า วันนี้บทความนี้กำลังจะพาคุณไปพบกับความหมายอีกด้านของชีวิต ตามเรามาเลย

แน่นอนว่าชีวิตในวัยเด็ก นับตั้งแต่จำความได้ เราทุกคนก็ถูกส่งให้เข้าโรงเรียนเพื่อเรียนหนังสือ ค้นคว้าและหาความรู้ ยิ่งเฉพาะกับการศึกษาในประเทศไทย ที่ให้มีชั่วโมงเรียนจำนวนมาก8 ชั่วโมงต่อวัน 5 วันต่อสัปดาห์ จึงเรียกได้ว่า ชีวิตในวัยเด็กจนกระทั่งพ้นวัยรุ่น เราไม่เคยอยู่ห่างการเรียนเลย เคยเบื่อกันบ้างมั้ย?

ดังนั้น “การแบ่งเวลามาเล่น” จึงดูเหมือนจะเป็นกุญแจสำคัญสำหรับเรื่องนี้ เพราะการที่เราหมกมุ่น หรือทำอะไรเรื่องเดิมๆ นานๆ นอกจากจะทำให้เบื่อง่ายแล้ว อาจทำให้ไฟหมดได้แบบไม่รู้ตัวอีกด้วย “การเล่น” จึงเป็นเหมือนสีสันที่เรานำเข้ามาคั่นระหว่างการเรียน เพื่อให้มีช่องว่าง เว้นจากการคิดถึงตำราบ้างในบางเวลา

“การเล่น” ก็มีหลากหลายรูปแบบด้วยกัน บางคนเลือกที่จะเล่นกีฬา ส่วนบางคนอาจเลือกเล่นศิลปะ เลือกเล่นดนตรี หรือที่ง่ายกว่านั้น การเลือกเล่นเกม ที่ในสมัยนี้มีมากมายมหาศาลให้ได้สนุกกัน ตั้งแต่เกมคอมพิวเตอร์ในสไตล์ต่างๆ เดอะซิมสร้างบ้าน ไปจนถึงเวิร์ล ออฟ วอร์คราฟสุดฮาร์ดคอ หรือจะเป็นเกม mmorpg เล่นเก็บเลเวล ปล่อยพลัง หรือลงกิลล์วอร์ สำหรับบางคนที่ชื่นชอบการไปไหนมาไหนอยู่เสมอ ก็อาจเลือกการเล่นเกมผ่านโทรศัพท์มือถือแทน ซึ่งปัจจุบันนี้ เกมมือถือก็ได้กลายเป็นเรื่องเดียวกันกับชีวิตบางคนไปซะแล้ว

การเรียนและเล่นควบคู่กันไป จะทำให้ชีวิตประจำวันของคุณสนุกยิ่งขึ้น เพราะหลังจากความเมื่อยล้าจากการเรียนและทำการบ้าน ก็ยังมีเกมสนุกๆ รอคุณอยู่ ซึ่งความบันเทิงดังกล่าว หากใช้อย่างจำกัดและพอดี ก็จะกลายเป็นความสมบูรณ์แบบของชีวิต ยิ่งไปกว่านั้น ผู้เล่นอาจยังได้รับผลพลอยได้ จากการมีทักษะต่างๆ เพิ่มจากการเล่นเกมก็เป็นได้ เริ่มเล่นเกมออนไลน์สนุกๆ แบบฟรีๆ ได้ที่เว็บไซต์ Sbobetเพียงแค่ลงทะเบียนเป็นสมาชิกเท่านั้น

Posted in ไม่มีหมวดหมู่ | Leave a comment

How to map a Native query result set to a Entity class

Problem : method getResultList(); รีเทิรน์ข้อมูลเป็น column index ทำให้เราต้องมาเขียนแมฟเข้า POJO เอง โดยเลือกโดยใช้ index เช่น cols[0].toString() ถ้าเกิดลำดับโครงสร้าง database เปลี่ยน จะเกิดปัญหาทันที
Goal : เราต้องการให้ค่าที่ออกจาก database รีเทิรน์เป็นทั้งชื่อ column และ value ออกไปเลย

ใช้ @SqlResultSetMapping โดย Class ที่ใช้แมฟต้องเป็น @Entity ไม่สามารถแมฟเข้า POJO ธรรมดา เพราะว่าต้องติดต่อกับ database และในนี้ใช้ @ConstructorResult หมายถึงจะแมฟ result set ผ่าน constructor เลย ทำให้ใน Entity Class นี้ต้องสร้าง constructor ไว้ด้วย หรือจะใช้ @ColumnResult ก็ได้ แต่ตัวอย่างนี้ขอใช้ @ConstructorResult

*Required : JPA 2.1

Entity Class

@SqlResultSetMapping(name="MyEntityResult", classes = {
@ConstructorResult(targetClass = MyEntity.class,
columns = {
@ColumnResult(name="ID",type=Integer.class),
@ColumnResult(name="NAME",type=String.class),
@ColumnResult(name="PHONE",type=String.class)
}
)
})

@Entity
public class MyEntity{

@Id
private Integer id;

@Column(nullable = true)
private String name;

@Column(nullable = true)
private String phone;

public MyEntity(Integer id, String name, String phone) {
this.id = id;
this.name= name;
this.phone = phone;
}

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return ssoName;
}

public void setName(String name) {
this.name = name;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone= phone;
}
}

Service Class

public List testQuery(){
StringBuilder sql = new StringBuilder();
sql.append("select ID,NAME,PHONE from MyEntity WHERE ROWNUM <= 2");
Query q =  em.createNativeQuery(sql.toString(),"MyEntityResult"); //Create native query map result set with MyEntityResult using SqlResultSetMapping

@SuppressWarnings("unchecked")
List<MyEntity> listOfSimpleEntities = q.getResultList();

return listOfSimpleEntities;
}

โดยตัวอย่างค่าที่ได้ออกมาจาก database ผ่าน SqlResultSetMapping รีเทิรน์เป็น output ได้ดังรูป
SqlResultSetMapping

Posted in java, spring boot | Tagged | Leave a comment

Error handle with @ControllerAdvice

import java.util.HashMap;
import java.util.Map;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.apache.log4j.Logger;

@ControllerAdvice
public class CustomException {

final static Logger logger = Logger.getLogger(CustomException.class);

@ResponseBody
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(Exception.class)
public Map handler(Exception ex){
Map map = new HashMap&lt;&gt;();
Map mapError = new HashMap&lt;&gt;();
mapError.put("message", ex.getMessage());
map.put("errors", mapError);
logger.error("This is error : " + ex.getMessage());
return map;
}
}

We can define exception handler methods in our controller classes. All we need is to annotate these methods with @ExceptionHandler annotation. This annotation takes Exception class as argument. So if we have defined one of these for Exception class, then all the exceptions thrown by our request handler method will have handled.
These exception handler methods are just like other request handler methods and we can build error response and respond with different error page. We can also send JSON error response

Posted in java, spring boot | Leave a comment

mvn is not recognized on window

  1. Download apache-maven-x.x.x-bin.zip file and extract it. assume extract to D:\yourpath
  2. Then set new System variable 
    MAVEN_HOME = D:\yourpath\apache-maven-x.x.x

    or as appropriate

  3. Also add Path System variable 
    %MAVEN_HOME%\bin
  4. Re-Open CMD and test type 
    mvn
Posted in knowledge | Leave a comment